From c4f85a38e630c80feb1deb9205d8bb3ff5b7caec Mon Sep 17 00:00:00 2001 From: Jules Blok Date: Tue, 5 May 2015 23:34:45 +0200 Subject: VideoBackends: Use proper floating point depth precision. --- Source/Core/VideoBackends/D3D/PixelShaderCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoBackends/D3D/PixelShaderCache.cpp') diff --git a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp index 3e2c6292c0..4a2def325c 100644 --- a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp +++ b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp @@ -146,7 +146,7 @@ const char depth_matrix_program[] = { " in float4 pos : SV_Position,\n" " in float3 uv0 : TEXCOORD0){\n" " float4 texcol = Tex0.Sample(samp0,uv0);\n" - " int depth = int(round(texcol.x * float(0xFFFFFF)));\n" + " int depth = int(round(texcol.x * 16777216.0));\n" // Convert to Z24 format " int4 workspace;\n" @@ -180,7 +180,7 @@ const char depth_matrix_program_msaa[] = { " for(int i = 0; i < SAMPLES; ++i)\n" " texcol += Tex0.Load(int3(uv0.x*(width), uv0.y*(height), uv0.z), i);\n" " texcol /= SAMPLES;\n" - " int depth = int(round(texcol.x * float(0xFFFFFF)));\n" + " int depth = int(round(texcol.x * 16777216.0));\n" // Convert to Z24 format " int4 workspace;\n" -- cgit v1.2.3 From b0770e2a0c2e391139db1365ca3658ada0f87da0 Mon Sep 17 00:00:00 2001 From: Jules Blok Date: Wed, 6 May 2015 22:02:12 +0200 Subject: VideoBackends: Floor depth values in depth copy shaders. --- Source/Core/VideoBackends/D3D/PixelShaderCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoBackends/D3D/PixelShaderCache.cpp') diff --git a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp index 4a2def325c..b6bbff313b 100644 --- a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp +++ b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp @@ -146,7 +146,7 @@ const char depth_matrix_program[] = { " in float4 pos : SV_Position,\n" " in float3 uv0 : TEXCOORD0){\n" " float4 texcol = Tex0.Sample(samp0,uv0);\n" - " int depth = int(round(texcol.x * 16777216.0));\n" + " int depth = int(floor(texcol.x * 16777216.0));\n" // Convert to Z24 format " int4 workspace;\n" @@ -180,7 +180,7 @@ const char depth_matrix_program_msaa[] = { " for(int i = 0; i < SAMPLES; ++i)\n" " texcol += Tex0.Load(int3(uv0.x*(width), uv0.y*(height), uv0.z), i);\n" " texcol /= SAMPLES;\n" - " int depth = int(round(texcol.x * 16777216.0));\n" + " int depth = int(floor(texcol.x * 16777216.0));\n" // Convert to Z24 format " int4 workspace;\n" -- cgit v1.2.3 From 0f2c72f0f844c219e168faa7de8dd515f8723fdc Mon Sep 17 00:00:00 2001 From: Jules Blok Date: Wed, 6 May 2015 22:42:06 +0200 Subject: VideoCommon: Clamp integer conversions. --- Source/Core/VideoBackends/D3D/PixelShaderCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoBackends/D3D/PixelShaderCache.cpp') diff --git a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp index b6bbff313b..eef2fdbe7a 100644 --- a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp +++ b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp @@ -146,7 +146,7 @@ const char depth_matrix_program[] = { " in float4 pos : SV_Position,\n" " in float3 uv0 : TEXCOORD0){\n" " float4 texcol = Tex0.Sample(samp0,uv0);\n" - " int depth = int(floor(texcol.x * 16777216.0));\n" + " int depth = clamp(int(texcol.x * 16777216.0), 0, 0xFFFFFF);\n" // Convert to Z24 format " int4 workspace;\n" @@ -180,7 +180,7 @@ const char depth_matrix_program_msaa[] = { " for(int i = 0; i < SAMPLES; ++i)\n" " texcol += Tex0.Load(int3(uv0.x*(width), uv0.y*(height), uv0.z), i);\n" " texcol /= SAMPLES;\n" - " int depth = int(floor(texcol.x * 16777216.0));\n" + " int depth = clamp(int(texcol.x * 16777216.0), 0, 0xFFFFFF);\n" // Convert to Z24 format " int4 workspace;\n" -- cgit v1.2.3