mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-18 12:17:01 +02:00
[video_core/host_shaders] add Snapdragon GSRv1 fragment shaders
Signed-off-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
parent
d1ceeeca22
commit
4129f07ce7
4 changed files with 108 additions and 1 deletions
61
.patch/snapdragon_gsr/0001-glslang-fix.patch
Normal file
61
.patch/snapdragon_gsr/0001-glslang-fix.patch
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
diff --git a/sgsr/v1/include/glsl/sgsr1_shader_mobile.frag b/sgsr/v1/include/glsl/sgsr1_shader_mobile.frag
|
||||||
|
index 7074999..69927af 100644
|
||||||
|
--- a/sgsr/v1/include/glsl/sgsr1_shader_mobile.frag
|
||||||
|
+++ b/sgsr/v1/include/glsl/sgsr1_shader_mobile.frag
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#version 300 es
|
||||||
|
+#version 320 es
|
||||||
|
|
||||||
|
//============================================================================================================
|
||||||
|
//
|
||||||
|
@@ -63,9 +63,9 @@ vec2 weightY(float dx, float dy,float c, float std)
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
- int mode = OperationMode;
|
||||||
|
- float edgeThreshold = EdgeThreshold;
|
||||||
|
- float edgeSharpness = EdgeSharpness;
|
||||||
|
+ const int mode = OperationMode;
|
||||||
|
+ const float edgeThreshold = EdgeThreshold;
|
||||||
|
+ const float edgeSharpness = EdgeSharpness;
|
||||||
|
|
||||||
|
vec4 color;
|
||||||
|
if(mode == 1)
|
||||||
|
@@ -93,10 +93,10 @@ void main()
|
||||||
|
{
|
||||||
|
coord.x += ViewportInfo[0].x;
|
||||||
|
|
||||||
|
- vec4 right = textureGather(ps0,coord + highp vec2(ViewportInfo[0].x, 0.0), mode);
|
||||||
|
+ vec4 right = textureGather(ps0,coord + vec2(ViewportInfo[0].x, 0.0), mode);
|
||||||
|
vec4 upDown;
|
||||||
|
- upDown.xy = textureGather(ps0,coord + highp vec2(0.0, -ViewportInfo[0].y),mode).wz;
|
||||||
|
- upDown.zw = textureGather(ps0,coord+ highp vec2(0.0, ViewportInfo[0].y), mode).yx;
|
||||||
|
+ upDown.xy = textureGather(ps0,coord + vec2(0.0, -ViewportInfo[0].y),mode).wz;
|
||||||
|
+ upDown.zw = textureGather(ps0,coord+ vec2(0.0, ViewportInfo[0].y), mode).yx;
|
||||||
|
|
||||||
|
float mean = (left.y+left.z+right.x+right.w)*0.25;
|
||||||
|
left = left - vec4(mean);
|
||||||
|
diff --git a/sgsr/v1/include/glsl/sgsr1_shader_mobile_edge_direction.frag b/sgsr/v1/include/glsl/sgsr1_shader_mobile_edge_direction.frag
|
||||||
|
index d2df646..1f1daa6 100644
|
||||||
|
--- a/sgsr/v1/include/glsl/sgsr1_shader_mobile_edge_direction.frag
|
||||||
|
+++ b/sgsr/v1/include/glsl/sgsr1_shader_mobile_edge_direction.frag
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#version 300 es
|
||||||
|
+#version 320 es
|
||||||
|
|
||||||
|
//============================================================================================================
|
||||||
|
//
|
||||||
|
@@ -124,10 +124,10 @@ void main()
|
||||||
|
{
|
||||||
|
coord.x += ViewportInfo[0].x;
|
||||||
|
|
||||||
|
- vec4 right = textureGather(ps0,coord + highp vec2(ViewportInfo[0].x, 0.0), OperationMode);
|
||||||
|
+ vec4 right = textureGather(ps0,coord + vec2(ViewportInfo[0].x, 0.0), OperationMode);
|
||||||
|
vec4 upDown;
|
||||||
|
- upDown.xy = textureGather(ps0,coord + highp vec2(0.0, -ViewportInfo[0].y),OperationMode).wz;
|
||||||
|
- upDown.zw = textureGather(ps0,coord+ highp vec2(0.0, ViewportInfo[0].y), OperationMode).yx;
|
||||||
|
+ upDown.xy = textureGather(ps0,coord + vec2(0.0, -ViewportInfo[0].y),OperationMode).wz;
|
||||||
|
+ upDown.zw = textureGather(ps0,coord+ vec2(0.0, ViewportInfo[0].y), OperationMode).yx;
|
||||||
|
|
||||||
|
float mean = (left.y+left.z+right.x+right.w)*0.25;
|
||||||
|
left = left - vec4(mean);
|
||||||
|
|
@ -257,6 +257,9 @@ endif()
|
||||||
|
|
||||||
option(YUZU_USE_BUNDLED_OPENSSL "Download bundled OpenSSL build" ${DEFAULT_YUZU_USE_BUNDLED_OPENSSL})
|
option(YUZU_USE_BUNDLED_OPENSSL "Download bundled OpenSSL build" ${DEFAULT_YUZU_USE_BUNDLED_OPENSSL})
|
||||||
|
|
||||||
|
AddJsonPackage(snapdragon_gsr)
|
||||||
|
|
||||||
|
# TODO(crueter): CPM this
|
||||||
if (ANDROID AND YUZU_DOWNLOAD_ANDROID_VVL)
|
if (ANDROID AND YUZU_DOWNLOAD_ANDROID_VVL)
|
||||||
AddJsonPackage(vulkan-validation-layers)
|
AddJsonPackage(vulkan-validation-layers)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,15 @@
|
||||||
"artifact": "android-binaries-%VERSION%.zip",
|
"artifact": "android-binaries-%VERSION%.zip",
|
||||||
"hash": "8812ae84cbe49e6a3418ade9c458d3be6d74a3dffd319d4502007b564d580998056e8190414368ec11b27bc83993c7a0dad713c31bcc3d9553b51243efee3753"
|
"hash": "8812ae84cbe49e6a3418ade9c458d3be6d74a3dffd319d4502007b564d580998056e8190414368ec11b27bc83993c7a0dad713c31bcc3d9553b51243efee3753"
|
||||||
},
|
},
|
||||||
|
"snapdragon_gsr": {
|
||||||
|
"repo": "SnapdragonStudios/snapdragon-gsr",
|
||||||
|
"package": "snapdragon_gsr",
|
||||||
|
"hash": "dsfsdfsd",
|
||||||
|
"sha": "d926f074bcb9d714e179f1ce0fcb9ee2eeb5074e",
|
||||||
|
"patches": [
|
||||||
|
"0001-glslang-fix.patch"
|
||||||
|
]
|
||||||
|
},
|
||||||
"quazip": {
|
"quazip": {
|
||||||
"package": "QuaZip-Qt6",
|
"package": "QuaZip-Qt6",
|
||||||
"repo": "stachenov/quazip",
|
"repo": "stachenov/quazip",
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
set(FIDELITYFX_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/externals/FidelityFX-FSR/ffx-fsr)
|
set(FIDELITYFX_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/externals/FidelityFX-FSR/ffx-fsr)
|
||||||
|
set(SNAPDRAGON_GSR_INCLUDE_DIR ${snapdragon_gsr_SOURCE_DIR}/sgsr/v1/include/glsl/)
|
||||||
|
|
||||||
set(FIDELITYFX_FILES
|
set(FIDELITYFX_FILES
|
||||||
${FIDELITYFX_INCLUDE_DIR}/ffx_a.h
|
${FIDELITYFX_INCLUDE_DIR}/ffx_a.h
|
||||||
|
|
@ -76,6 +77,8 @@ set(SHADER_FILES
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/vulkan_quad_indexed.comp
|
${CMAKE_CURRENT_SOURCE_DIR}/vulkan_quad_indexed.comp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/vulkan_turbo_mode.comp
|
${CMAKE_CURRENT_SOURCE_DIR}/vulkan_turbo_mode.comp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/vulkan_uint8.comp
|
${CMAKE_CURRENT_SOURCE_DIR}/vulkan_uint8.comp
|
||||||
|
${SNAPDRAGON_GSR_INCLUDE_DIR}/sgsr1_shader_mobile.frag
|
||||||
|
${SNAPDRAGON_GSR_INCLUDE_DIR}/sgsr1_shader_mobile_edge_direction.frag
|
||||||
)
|
)
|
||||||
|
|
||||||
if (PLATFORM_HAIKU)
|
if (PLATFORM_HAIKU)
|
||||||
|
|
@ -145,11 +148,42 @@ foreach(SOURCE_FILE IN ITEMS ${SHADER_FILES})
|
||||||
OUTPUT
|
OUTPUT
|
||||||
${SPIRV_HEADER_FILE}
|
${SPIRV_HEADER_FILE}
|
||||||
COMMAND
|
COMMAND
|
||||||
${GLSLANGVALIDATOR} -V ${QUIET_FLAG} -I"${FIDELITYFX_INCLUDE_DIR}" ${GLSL_FLAGS} --variable-name ${SPIRV_VARIABLE_NAME} -o ${SPIRV_HEADER_FILE} ${SOURCE_FILE} --target-env ${SPIR_V_VERSION}
|
${GLSLANGVALIDATOR} -V ${QUIET_FLAG} -DUseUniformBlock=1 ${GLSL_FLAGS} --variable-name ${SPIRV_VARIABLE_NAME} -o ${SPIRV_HEADER_FILE} ${SOURCE_FILE} --target-env ${SPIR_V_VERSION}
|
||||||
MAIN_DEPENDENCY
|
MAIN_DEPENDENCY
|
||||||
${SOURCE_FILE}
|
${SOURCE_FILE}
|
||||||
)
|
)
|
||||||
set(SHADER_HEADERS ${SHADER_HEADERS} ${SPIRV_HEADER_FILE})
|
set(SHADER_HEADERS ${SHADER_HEADERS} ${SPIRV_HEADER_FILE})
|
||||||
|
else()
|
||||||
|
# Skip generating source headers on Vulkan exclusive files
|
||||||
|
if (NOT ${FILENAME} MATCHES "vulkan.*" AND NOT ${FILENAME} MATCHES "sgsr1.*")
|
||||||
|
set(SOURCE_HEADER_FILE ${SHADER_DIR}/${SHADER_NAME}.h)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT
|
||||||
|
${SOURCE_HEADER_FILE}
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -P ${HEADER_GENERATOR} ${SOURCE_FILE} ${SOURCE_HEADER_FILE} ${INPUT_FILE}
|
||||||
|
MAIN_DEPENDENCY
|
||||||
|
${SOURCE_FILE}
|
||||||
|
DEPENDS
|
||||||
|
${INPUT_FILE}
|
||||||
|
# HEADER_GENERATOR should be included here but msbuild seems to assume it's always modified
|
||||||
|
)
|
||||||
|
set(SHADER_HEADERS ${SHADER_HEADERS} ${SOURCE_HEADER_FILE})
|
||||||
|
endif()
|
||||||
|
# Skip compiling to SPIR-V OpenGL exclusive files
|
||||||
|
if (NOT ${FILENAME} MATCHES "opengl.*")
|
||||||
|
string(TOUPPER ${SHADER_NAME}_SPV SPIRV_VARIABLE_NAME)
|
||||||
|
set(SPIRV_HEADER_FILE ${SHADER_DIR}/${SHADER_NAME}_spv.h)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT
|
||||||
|
${SPIRV_HEADER_FILE}
|
||||||
|
COMMAND
|
||||||
|
${GLSLANGVALIDATOR} -V ${QUIET_FLAG} -I"${FIDELITYFX_INCLUDE_DIR}" ${GLSL_FLAGS} --variable-name ${SPIRV_VARIABLE_NAME} -o ${SPIRV_HEADER_FILE} ${SOURCE_FILE} --target-env ${SPIR_V_VERSION}
|
||||||
|
MAIN_DEPENDENCY
|
||||||
|
${SOURCE_FILE}
|
||||||
|
)
|
||||||
|
set(SHADER_HEADERS ${SHADER_HEADERS} ${SPIRV_HEADER_FILE})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue