summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureConversionShader.cpp
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2022-02-07 13:37:28 -0800
committerPokechu22 <Pokechu022@gmail.com>2022-07-16 00:07:10 -0700
commit791bd16b281d3b123a2b9cf2d5c215d4ab235c1d (patch)
treed8c0c54bf668366e4af57702469b481690e48089 /Source/Core/VideoCommon/TextureConversionShader.cpp
parentd20094efa22829640849c8c4d906c6b0e1a24cd6 (diff)
Restructure parameters to TetxureConverterShaderGen/TextureConversionShader
This will be used for later refactoring for increased accuracy.
Diffstat (limited to 'Source/Core/VideoCommon/TextureConversionShader.cpp')
-rw-r--r--Source/Core/VideoCommon/TextureConversionShader.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/Source/Core/VideoCommon/TextureConversionShader.cpp b/Source/Core/VideoCommon/TextureConversionShader.cpp
index e7a2d4a392..fc27c9cc99 100644
--- a/Source/Core/VideoCommon/TextureConversionShader.cpp
+++ b/Source/Core/VideoCommon/TextureConversionShader.cpp
@@ -62,7 +62,7 @@ static void WriteHeader(ShaderCode& code, APIType api_type)
" float y_scale;\n"
" float gamma_rcp;\n"
" float2 clamp_tb;\n"
- " float3 filter_coefficients;\n"
+ " uint3 filter_coefficients;\n"
"}};\n");
if (g_ActiveConfig.backend_info.bSupportsGeometryShaders)
{
@@ -151,7 +151,7 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A
// The filter is only applied to the RGB channels, the alpha channel is left intact.
code.Write("float4 SampleEFB(float2 uv, float2 pixel_size, int xoffset)\n"
"{{\n");
- if (params.copy_filter)
+ if (params.all_copy_filter_coefs_needed)
{
code.Write(" float4 prev_row = ");
WriteSampleOp(-1);
@@ -162,9 +162,9 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A
" float4 next_row = ");
WriteSampleOp(1);
code.Write(";\n"
- " return float4(min(prev_row.rgb * filter_coefficients[0] +\n"
- " current_row.rgb * filter_coefficients[1] +\n"
- " next_row.rgb * filter_coefficients[2], \n"
+ " return float4(min(prev_row.rgb * filter_coefficients[0] / 64.0 +\n"
+ " current_row.rgb * filter_coefficients[1] / 64.0 +\n"
+ " next_row.rgb * filter_coefficients[2] / 64.0, \n"
" float3(1, 1, 1)), current_row.a);\n");
}
else
@@ -172,7 +172,7 @@ static void WriteSampleFunction(ShaderCode& code, const EFBCopyParams& params, A
code.Write(" float4 current_row = ");
WriteSampleOp(0);
code.Write(";\n"
- "return float4(min(current_row.rgb * filter_coefficients[1], float3(1, 1, 1)),\n"
+ "return float4(min(current_row.rgb * filter_coefficients[1] / 64.0, float3(1, 1, 1)),\n"
" current_row.a);\n");
}
code.Write("}}\n");