28 Commits
Author SHA1 Message Date
ExzapandGitHub f42bebd196 Merge pull request #361 from Exzap/tweaks
Fix encoding error in input profiles + update metainfo
2022-10-12 15:25:01 +02:00
Exzap 0412dec078 Fix metainfo
Comment out vcs-browser url type for now. It's a pretty recent addition to the standard and is considered an error by some older utilities
2022-10-12 15:23:04 +02:00
Exzap f65dbe8437 Fix encoding error in input profile filenames
- Controller profile filenames now encode unicode characters correctly
- Removed dependency on boost::filesystem. There is still an indirect dependency on it from another boost module it seems
- Refactored some code to use FileStream instead of ifstream/ofstream
2022-10-12 14:27:01 +02:00
SSimcoandGitHub 8b3f36ad50 Use correct preprocessor check for Linux (#360) 2022-10-12 13:10:57 +02:00
SSimcoandGitHub d6ba61cf64 Add support for non portable mode (#356) 2022-10-12 08:03:26 +02:00
ExzapandGitHub 2b9edced81 Minor tweaks and code clean up (#357) 2022-10-11 09:17:34 +02:00
MythicalPlayzandGitHub b07e9efba4 Add support for choosing network service (incl Pretendo+Custom) (#302) 2022-10-11 04:04:47 +02:00
ExzapandGitHub 52cc7c5996 Follow imgui recommendation and streamline build dependencies (#355) 2022-10-11 01:43:15 +02:00
goeiecool9999andGitHub 431c5a101f Linux: Print demangled symbols on backtrace (#312) 2022-10-10 02:35:04 +02:00
TillsunsetandGitHub 0c9fb3143f memory optimization, using posix_memalign (#350) 2022-10-09 10:43:45 +02:00
TillsunsetandGitHub 638e9e1f87 Workaround for the h264 video crash on macOS (#348) 2022-10-09 08:45:26 +02:00
TillsunsetandGitHub b724a657e6 MoltenVk: Add missing texture decoders (#332) 2022-10-08 15:07:54 +02:00
bslhqandGitHub 551f821109 Auto resize last column (#265) 2022-10-07 14:30:06 +02:00
emiylandGitHub 00968acc1d dedicated decoder for R4G4 and R4G4B4A4 to R8G8B8A8 (#331) 2022-10-07 02:39:06 +02:00
emiylandGitHub 4519a59d74 [ih264] per-function target attribute on clang and GCC (#328) 2022-10-04 15:24:14 +02:00
purofleandGitHub 8a0fe21589 [docs] add --needed in ArchLinux dependencies (#324) 2022-10-03 13:05:42 +02:00
TillsunsetandGitHub fb5ecca157 Vulkan: Use correct texture clear in LatteDraw_handleSpecialState8_clearAsDepth (#321) 2022-10-02 19:18:35 +02:00
TillsunsetandGitHub 11f6e2b7ee Vulkan: Implement texture decoder for R5G6B5_UNORM to R8G8B8A8_UNORM (#320) 2022-10-02 01:48:13 +02:00
emiylandGitHub 9541c8ae85 MoltenVk: Workaround for unsupported format R5_G6_B5_UNORM (#318) 2022-09-30 18:07:00 +02:00
ExzapandGitHub cceb4f6d0e Vulkan: Always disable blending for integer formats (#317)
Should fix a warning in the Vulkan validation layer and avoid a sigtrap in MoltenVk
2022-09-30 15:59:16 +02:00
emiylandGitHub ecfbbd4e26 MoltenVK: Workaround for unsupported formats (#315) 2022-09-30 15:28:56 +02:00
Narr the RegandGitHub 3767257220 nfp: Fix corruption, correct structs and use write counters (#310) 2022-09-29 13:00:46 +02:00
TillsunsetandGitHub 3fb4b5e26c MacOS+Linux: Use CLOCK_MONOTONIC_RAW over CLOCK_MONOTONIC (#313)
On MacOS this fixes the framerate being too high due to discontinuities in the timer that drives the emulated vsync. It also fixes behavior of the GetTickCount() wrapper.
2022-09-29 11:36:27 +02:00
UltraHDRandGitHub a28d67bafd Remove -DPUBLIC_RELEASE=ON from macOS command (#309) 2022-09-27 22:18:35 +02:00
goeiecool9999andGitHub 6ecc4be0da Posix/Linux: Add setting to disable coredumps 2022-09-27 13:58:50 +02:00
goeiecool9999andGitHub 35afb99c99 [docs] Add llvm as a required package for Arch Linux (#308) 2022-09-27 12:48:35 +02:00
SSimcoandGitHub 25dae98ce0 Fix crash on GTK when a gfx pack preset value is changed (#300) 2022-09-26 07:53:10 +02:00
emiylandGitHub 53c7daa603 [docs] Add brew installation instructions for macos (#303) 2022-09-25 21:38:31 +02:00
97 changed files with 1683 additions and 466 deletions
+2
View File
@@ -30,9 +30,11 @@ bin/Cemu_*.ilk
bin/Cemu.exe.backup
bin/mlc01/*
bin/settings.xml
bin/network_services.xml
bin/title_list_cache.xml
bin/debugger/*
bin/sdcard/*
bin/screenshots/*
!bin/shaderCache/info.txt
bin/shaderCache/*
+3
View File
@@ -13,3 +13,6 @@
[submodule "dependencies/Vulkan-Headers"]
path = dependencies/Vulkan-Headers
url = https://github.com/KhronosGroup/Vulkan-Headers
[submodule "dependencies/imgui"]
path = dependencies/imgui
url = https://github.com/ocornut/imgui
+6 -3
View File
@@ -33,7 +33,7 @@ To compile Cemu, a recent enough compiler and STL with C++20 support is required
`cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang-12 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-12 -G Ninja -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja`
#### For Arch and derivatives:
`sudo pacman -S git cmake clang ninja nasm base-devel linux-headers gtk3 libsecret libgcrypt systemd freeglut zip unzip libpulse`
`sudo pacman -S --needed git cmake llvm clang ninja nasm base-devel linux-headers gtk3 libsecret libgcrypt systemd freeglut zip unzip libpulse`
#### For Fedora and derivatives:
`sudo dnf install git cmake clang ninja-build nasm kernel-headers gtk3-devel libsecret-devel libgcrypt-devel systemd-devel freeglut-devel perl-core zlib-devel cubeb-devel`
@@ -65,7 +65,10 @@ To compile Cemu, a recent enough compiler and STL with C++20 support is required
below, built in LLVM, and Xcode LLVM don't support the C++20 feature set required. Currently,
LLVM 15 isn't supported due to compatibility issues with Boost dependency. The OpenGL graphics
API isn't support on MacOS, Vulkan must be used. Additionally Vulkan must be used through the
Molten-VK compatibility layer.
Molten-VK compatibility layer.
### Installing brew
`/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
### Installing dependencies
`brew install git cmake llvm@14 ninja nasm molten-vk`
@@ -73,7 +76,7 @@ Molten-VK compatibility layer.
### Build Cemu using cmake and clang
1. `git clone --recursive https://github.com/cemu-project/Cemu`
2. `cd Cemu`
3. `cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON
3. `cmake -S . -B build -DCMAKE_BUILD_TYPE=release
-DCMAKE_C_COMPILER=/usr/local/opt/llvm@14/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@14/bin/clang++ -G Ninja`
4. `cmake --build build`
5. You should now have a Cemu executable file in the /bin folder, which you can run using `./bin/Cemu_release`.
+5 -1
View File
@@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 3.21.1)
option(ENABLE_VCPKG "Enable the vcpkg package manager" ON)
option(PORTABLE "All data created and maintained by Cemu will be in the directory where the executable file is located" ON)
set(EXPERIMENTAL_VERSION "" CACHE STRING "") # used by CI script to set experimental version
if (EXPERIMENTAL_VERSION)
@@ -30,6 +31,10 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_compile_definitions($<$<CONFIG:Debug>:CEMU_DEBUG_ASSERT>) # if build type is debug, set CEMU_DEBUG_ASSERT
if(PORTABLE)
add_compile_definitions(PORTABLE)
endif()
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# enable link time optimization for release builds
@@ -83,7 +88,6 @@ find_package(Threads REQUIRED)
find_package(SDL2 REQUIRED)
find_package(CURL REQUIRED)
find_package(pugixml REQUIRED)
find_package(imgui REQUIRED)
find_package(RapidJSON REQUIRED)
find_package(Boost COMPONENTS program_options filesystem nowide REQUIRED)
find_package(libzip REQUIRED)
-4
View File
@@ -6,10 +6,6 @@ set(LIBAVCDEC_X86_INCLUDES "common/x86" "decoder/x86")
include_directories("common/" "decoder/" ${LIBAVCDEC_X86_INCLUDES})
if((CMAKE_C_COMPILER_ID MATCHES "GNU") OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
add_compile_options(-mssse3 -mavx2)
endif()
add_library (ih264d
"common/ih264_buf_mgr.c"
"common/ih264_buf_mgr.h"
@@ -56,6 +56,11 @@
#include "ih264_platform_macros.h"
#include "ih264_intra_pred_filters.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/
/* Chroma Intra prediction 8x8 filters */
@@ -93,6 +98,8 @@
*
******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_intra_pred_chroma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -169,6 +176,8 @@ void ih264_intra_pred_chroma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_intra_pred_chroma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -237,6 +246,8 @@ void ih264_intra_pred_chroma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
*
******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_intra_pred_chroma_8x8_mode_plane_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -53,6 +53,12 @@
#include "ih264_deblk_edge_filters.h"
#include "ih264_macros.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/
/* Function Definitions */
/*****************************************************************************/
@@ -91,6 +97,8 @@
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
@@ -274,6 +282,8 @@ void ih264_deblk_chroma_vert_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_horz_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
@@ -424,6 +434,8 @@ void ih264_deblk_chroma_horz_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
@@ -645,6 +657,8 @@ void ih264_deblk_chroma_vert_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_horz_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
@@ -829,6 +843,8 @@ void ih264_deblk_chroma_horz_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
@@ -963,6 +979,8 @@ void ih264_deblk_chroma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_chroma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
+12
View File
@@ -53,6 +53,12 @@
#include "ih264_deblk_edge_filters.h"
#include "ih264_macros.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/
/* Function Definitions */
/*****************************************************************************/
@@ -87,6 +93,7 @@
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
@@ -508,6 +515,7 @@ void ih264_deblk_luma_vert_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_horz_bs4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
@@ -847,6 +855,7 @@ void ih264_deblk_luma_horz_bs4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
@@ -1142,6 +1151,7 @@ void ih264_deblk_luma_vert_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_horz_bslt4_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
@@ -1439,6 +1449,7 @@ void ih264_deblk_luma_horz_bslt4_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
@@ -1758,6 +1769,7 @@ void ih264_deblk_luma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
/* 12 02 2015 Naveen Kumar P Initial version */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_deblk_luma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
@@ -52,6 +52,12 @@
#include <immintrin.h>
#include <smmintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/*
********************************************************************************
*
@@ -87,6 +93,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSE42
void ih264_ihadamard_scaling_4x4_sse42(WORD16* pi2_src,
WORD16* pi2_out,
const UWORD16 *pu2_iscal_mat,
@@ -202,6 +209,7 @@ void ih264_ihadamard_scaling_4x4_sse42(WORD16* pi2_src,
_mm_storeu_si128((__m128i *) (&pi2_out[8]), src_r2_r3);
}
ATTRIBUTE_SSE42
void ih264_ihadamard_scaling_2x2_uv_sse42(WORD16* pi2_src,
WORD16* pi2_out,
const UWORD16 *pu2_iscal_mat,
@@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*
********************************************************************************
*
@@ -85,6 +91,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_ihadamard_scaling_4x4_ssse3(WORD16* pi2_src,
WORD16* pi2_out,
const UWORD16 *pu2_iscal_mat,
@@ -54,6 +54,12 @@
#include "ih264_platform_macros.h"
#include "ih264_inter_pred_filters.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*****************************************************************************/
/* Constant Data variables */
/*****************************************************************************/
@@ -87,6 +93,7 @@
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_copy_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -213,6 +220,7 @@ void ih264_inter_pred_luma_copy_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -478,6 +486,7 @@ void ih264_inter_pred_luma_horz_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -764,6 +773,7 @@ void ih264_inter_pred_luma_vert_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1488,6 +1498,7 @@ void ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1782,6 +1793,7 @@ void ih264_inter_pred_luma_horz_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_vert_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -2107,6 +2119,7 @@ void ih264_inter_pred_luma_vert_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -2675,6 +2688,7 @@ void ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -3285,6 +3299,7 @@ void ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -3991,6 +4006,7 @@ void ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSSE3
void ih264_inter_pred_chroma_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*
********************************************************************************
*
@@ -98,6 +104,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_4x4_dc_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
@@ -224,6 +231,7 @@ void ih264_iquant_itrans_recon_4x4_dc_ssse3(WORD16 *pi2_src,
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_8x8_dc_ssse3 (WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
@@ -385,6 +393,7 @@ void ih264_iquant_itrans_recon_8x8_dc_ssse3 (WORD16 *pi2_src,
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_chroma_4x4_dc_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
@@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/*
********************************************************************************
*
@@ -97,6 +103,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSE42
void ih264_iquant_itrans_recon_4x4_sse42(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
@@ -348,6 +355,7 @@ void ih264_iquant_itrans_recon_4x4_sse42(WORD16 *pi2_src,
*
*******************************************************************************
*/
ATTRIBUTE_SSE42
void ih264_iquant_itrans_recon_chroma_4x4_sse42(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
@@ -50,6 +50,12 @@
#include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/*
********************************************************************************
*
@@ -97,6 +103,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_4x4_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
@@ -366,6 +373,7 @@ void ih264_iquant_itrans_recon_4x4_ssse3(WORD16 *pi2_src,
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_iquant_itrans_recon_8x8_ssse3(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
@@ -75,6 +75,12 @@
#include "ih264_platform_macros.h"
#include "ih264_intra_pred_filters.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/******************* LUMA INTRAPREDICTION *******************/
@@ -114,6 +120,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -173,6 +180,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_ssse3(UWORD8 *pu1_src,
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -238,6 +246,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_dc_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -316,6 +325,7 @@ void ih264_intra_pred_luma_4x4_mode_dc_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -400,6 +410,7 @@ void ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -487,6 +498,7 @@ void ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_vert_r_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -579,6 +591,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_r_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_horz_d_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -675,6 +688,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_d_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_vert_l_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -764,6 +778,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_l_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_4x4_mode_horz_u_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -864,6 +879,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_u_ssse3(UWORD8 *pu1_src,
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -921,6 +937,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
*
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -985,6 +1002,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_dc_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1078,6 +1096,7 @@ void ih264_intra_pred_luma_8x8_mode_dc_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1176,6 +1195,7 @@ void ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1278,6 +1298,7 @@ void ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_vert_r_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1398,6 +1419,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_r_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_horz_d_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1502,6 +1524,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_d_ssse3(UWORD8 *pu1_src,
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_vert_l_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1598,6 +1621,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_l_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_8x8_mode_horz_u_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1699,6 +1723,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_u_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_vert_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1778,6 +1803,7 @@ void ih264_intra_pred_luma_16x16_mode_vert_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_horz_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1875,6 +1901,7 @@ void ih264_intra_pred_luma_16x16_mode_horz_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_dc_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -1998,6 +2025,7 @@ void ih264_intra_pred_luma_16x16_mode_dc_ssse3(UWORD8 *pu1_src,
* None
*
*******************************************************************************/
ATTRIBUTE_SSSE3
void ih264_intra_pred_luma_16x16_mode_plane_ssse3(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
+8
View File
@@ -50,6 +50,12 @@
#include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/**
*******************************************************************************
*
@@ -78,6 +84,7 @@
ATTRIBUTE_SSSE3
void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes)
{
int col;
@@ -117,6 +124,7 @@ void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_byte
*/
ATTRIBUTE_SSSE3
void ih264_memset_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes)
{
int col;
+10
View File
@@ -49,6 +49,12 @@
#include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
#else
#define ATTRIBUTE_SSSE3
#endif
/**
*******************************************************************************
@@ -89,6 +95,7 @@
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_pad_left_luma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 ht,
@@ -156,6 +163,7 @@ void ih264_pad_left_luma_ssse3(UWORD8 *pu1_src,
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_pad_left_chroma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 ht,
@@ -222,6 +230,7 @@ void ih264_pad_left_chroma_ssse3(UWORD8 *pu1_src,
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_pad_right_luma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 ht,
@@ -289,6 +298,7 @@ void ih264_pad_right_luma_ssse3(UWORD8 *pu1_src,
*******************************************************************************
*/
ATTRIBUTE_SSSE3
void ih264_pad_right_chroma_ssse3(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 ht,
@@ -51,6 +51,12 @@
#include "ih264_structs.h"
#include "ih264_trans_quant_itrans_iquant.h"
#include <immintrin.h>
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/**
*******************************************************************************
*
@@ -103,6 +109,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSE42
void ih264_resi_trans_quant_4x4_sse42(UWORD8 *pu1_src, UWORD8 *pu1_pred,
WORD16 *pi2_out, WORD32 src_strd, WORD32 pred_strd,
const UWORD16 *pu2_scale_matrix, const UWORD16 *pu2_threshold_matrix,
@@ -376,6 +383,7 @@ void ih264_resi_trans_quant_4x4_sse42(UWORD8 *pu1_src, UWORD8 *pu1_pred,
*
*******************************************************************************
*/
ATTRIBUTE_SSE42
void ih264_resi_trans_quant_chroma_4x4_sse42(UWORD8 *pu1_src,UWORD8 *pu1_pred,WORD16 *pi2_out,
WORD32 src_strd,WORD32 pred_strd,
const UWORD16 *pu2_scale_matrix,
@@ -663,6 +671,7 @@ void ih264_resi_trans_quant_chroma_4x4_sse42(UWORD8 *pu1_src,UWORD8 *pu1_pred,WO
*
*/
ATTRIBUTE_SSE42
void ih264_hadamard_quant_4x4_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
const UWORD16 *pu2_scale_matrix,
const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits,
@@ -892,6 +901,7 @@ void ih264_hadamard_quant_4x4_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
*
*/
ATTRIBUTE_SSE42
void ih264_hadamard_quant_2x2_uv_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
const UWORD16 *pu2_scale_matrix,
const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits,
@@ -50,6 +50,12 @@
#include "ih264_platform_macros.h"
#include "ih264_weighted_pred.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/*****************************************************************************/
/* Function definitions . */
/*****************************************************************************/
@@ -82,6 +88,7 @@
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_default_weighted_pred_luma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2,
UWORD8 *pu1_dst,
@@ -245,6 +252,7 @@ void ih264_default_weighted_pred_luma_sse42(UWORD8 *pu1_src1,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_default_weighted_pred_chroma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2,
UWORD8 *pu1_dst,
@@ -375,6 +383,7 @@ void ih264_default_weighted_pred_chroma_sse42(UWORD8 *pu1_src1,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_pred_luma_sse42(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -605,6 +614,7 @@ void ih264_weighted_pred_luma_sse42(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_pred_chroma_sse42(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
@@ -814,6 +824,7 @@ void ih264_weighted_pred_chroma_sse42(UWORD8 *pu1_src,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_bi_pred_luma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2,
UWORD8 *pu1_dst,
@@ -1101,6 +1112,7 @@ void ih264_weighted_bi_pred_luma_sse42(UWORD8 *pu1_src1,
/* Senthoor */
/* */
/*****************************************************************************/
ATTRIBUTE_SSE42
void ih264_weighted_bi_pred_chroma_sse42(UWORD8 *pu1_src1,
UWORD8 *pu1_src2,
UWORD8 *pu1_dst,
@@ -60,6 +60,12 @@
#include "ih264d_structs.h"
#ifdef __GNUC__
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
#else
#define ATTRIBUTE_SSE42
#endif
/**
*******************************************************************************
@@ -79,6 +85,7 @@
*
*******************************************************************************
*/
ATTRIBUTE_SSE42
void ih264d_init_function_ptr_sse42(dec_struct_t *ps_codec)
{
ps_codec->pf_default_weighted_pred_luma = ih264_default_weighted_pred_luma_sse42;

Some files were not shown because too many files have changed in this diff Show More