summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2014-11-22 19:52:59 +0100
committerJules Blok <jules.blok@gmail.com>2014-12-14 13:28:46 +0100
commitced733ccdfcb52cc35b71d0a3365798bfea43a23 (patch)
tree77b96037de9079cf0b2fac74582ed2b446ac3638 /Source/Core/VideoBackends
parentd58e389f6782a1e548e5191d5a238ddd9ddfe3e0 (diff)
PixelShaderCache: Add texture array support to static shaders.
Diffstat (limited to 'Source/Core/VideoBackends')
-rw-r--r--Source/Core/VideoBackends/D3D/PixelShaderCache.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp
index 94c53beda3..7220264367 100644
--- a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp
+++ b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp
@@ -79,12 +79,12 @@ const char color_copy_program_code_msaa[] = {
const char color_matrix_program_code[] = {
"sampler samp0 : register(s0);\n"
- "Texture2D Tex0 : register(t0);\n"
+ "Texture2DArray Tex0 : register(t0);\n"
"uniform float4 cColMatrix[7] : register(c0);\n"
"void main(\n"
"out float4 ocol0 : SV_Target,\n"
"in float4 pos : SV_Position,\n"
- " in float2 uv0 : TEXCOORD0){\n"
+ "in float3 uv0 : TEXCOORD0){\n"
"float4 texcol = Tex0.Sample(samp0,uv0);\n"
"texcol = round(texcol * cColMatrix[5])*cColMatrix[6];\n"
"ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n"
@@ -93,17 +93,17 @@ const char color_matrix_program_code[] = {
const char color_matrix_program_code_msaa[] = {
"sampler samp0 : register(s0);\n"
- "Texture2DMS<float4, %d> Tex0 : register(t0);\n"
+ "Texture2DMSArray<float4, %d> Tex0 : register(t0);\n"
"uniform float4 cColMatrix[7] : register(c0);\n"
"void main(\n"
"out float4 ocol0 : SV_Target,\n"
"in float4 pos : SV_Position,\n"
- " in float2 uv0 : TEXCOORD0){\n"
+ "in float3 uv0 : TEXCOORD0){\n"
"int width, height, samples;\n"
"Tex0.GetDimensions(width, height, samples);\n"
"float4 texcol = 0;\n"
"for(int i = 0; i < samples; ++i)\n"
- " texcol += Tex0.Load(int2(uv0.x*(width), uv0.y*(height)), i);\n"
+ " texcol += Tex0.Load(int2(uv0.x*(width), uv0.y*(height), uv0.z), i);\n"
"texcol /= samples;\n"
"texcol = round(texcol * cColMatrix[5])*cColMatrix[6];\n"
"ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n"
@@ -112,12 +112,12 @@ const char color_matrix_program_code_msaa[] = {
const char depth_matrix_program[] = {
"sampler samp0 : register(s0);\n"
- "Texture2D Tex0 : register(t0);\n"
+ "Texture2DArray Tex0 : register(t0);\n"
"uniform float4 cColMatrix[7] : register(c0);\n"
"void main(\n"
"out float4 ocol0 : SV_Target,\n"
" in float4 pos : SV_Position,\n"
- " in float2 uv0 : TEXCOORD0){\n"
+ " in float3 uv0 : TEXCOORD0){\n"
" float4 texcol = Tex0.Sample(samp0,uv0);\n"
// 255.99998474121 = 16777215/16777216*256
@@ -147,17 +147,17 @@ const char depth_matrix_program[] = {
const char depth_matrix_program_msaa[] = {
"sampler samp0 : register(s0);\n"
- "Texture2DMS<float4, %d> Tex0 : register(t0);\n"
+ "Texture2DMSArray<float4, %d> Tex0 : register(t0);\n"
"uniform float4 cColMatrix[7] : register(c0);\n"
"void main(\n"
"out float4 ocol0 : SV_Target,\n"
" in float4 pos : SV_Position,\n"
- " in float2 uv0 : TEXCOORD0){\n"
+ " in float3 uv0 : TEXCOORD0){\n"
" int width, height, samples;\n"
" Tex0.GetDimensions(width, height, samples);\n"
" float4 texcol = 0;\n"
" for(int i = 0; i < samples; ++i)\n"
- " texcol += Tex0.Load(int2(uv0.x*(width), uv0.y*(height)), i);\n"
+ " texcol += Tex0.Load(int2(uv0.x*(width), uv0.y*(height), uv0.z), i);\n"
" texcol /= samples;\n"
// 255.99998474121 = 16777215/16777216*256