summaryrefslogtreecommitdiffstats
path: root/tools/render-test/render-d3d11.cpp
diff options
context:
space:
mode:
authorYONGH\yongh <yonghe@outlook.com>2017-10-25 17:59:45 -0400
committerYONGH\yongh <yonghe@outlook.com>2017-10-25 17:59:45 -0400
commit52ceff4beee7cdc7d47eb9292a35e9f610a80bdc (patch)
tree27178492317206dc1281b2d3caa31ab60bd35002 /tools/render-test/render-d3d11.cpp
parent922c17be4c6d33243cb4876bea9a44e3c855f4bc (diff)
add new test mode: COMPARE_RENDER_COMPUTE, which runs a input vertex/fragment shader pair, but instead of comparing the resulting framebuffer, it expects the test shader to write results into a UAV, and compares the pixel shader UAV output to the reference output.
Diffstat (limited to 'tools/render-test/render-d3d11.cpp')
-rw-r--r--tools/render-test/render-d3d11.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/tools/render-test/render-d3d11.cpp b/tools/render-test/render-d3d11.cpp
index f90d3fbbe..cdb9f20bd 100644
--- a/tools/render-test/render-d3d11.cpp
+++ b/tools/render-test/render-d3d11.cpp
@@ -339,7 +339,7 @@ public:
hr = D3D11CreateDeviceAndSwapChain_(
NULL, // adapter (use default)
D3D_DRIVER_TYPE_WARP,
-// D3D_DRIVER_TYPE_HARDWARE,
+ //D3D_DRIVER_TYPE_HARDWARE,
NULL, // software
deviceFlags,
&featureLevels[ii],
@@ -520,7 +520,8 @@ public:
{
case Format::RGB_Float32:
return DXGI_FORMAT_R32G32B32_FLOAT;
-
+ case Format::RG_Float32:
+ return DXGI_FORMAT_R32G32_FLOAT;
default:
return DXGI_FORMAT_UNKNOWN;
}
@@ -556,7 +557,9 @@ public:
case Format::RGB_Float32:
typeName = "float3";
break;
-
+ case Format::RG_Float32:
+ typeName = "float2";
+ break;
default:
return nullptr;
}
@@ -570,7 +573,7 @@ public:
hlslCursor += sprintf(hlslCursor, "\n) : SV_Position { return 0; }");
- auto dxVertexShaderBlob = compileHLSLShader("inputLayout", hlslBuffer, "main", "vs_4_0");
+ auto dxVertexShaderBlob = compileHLSLShader("inputLayout", hlslBuffer, "main", "vs_5_0");
if(!dxVertexShaderBlob)
return nullptr;
@@ -894,6 +897,7 @@ public:
viewDesc.Texture1DArray.FirstArraySlice = 0;
viewDesc.Texture1DArray.MipLevels = texData.mipLevels;
viewDesc.Texture1DArray.MostDetailedMip = 0;
+ viewDesc.Format = desc.Format;
dxDevice->CreateShaderResourceView(texture, &viewDesc, &viewOut);
}
else if (inputDesc.dimension == 2)
@@ -934,6 +938,7 @@ public:
desc.Usage = D3D11_USAGE_DEFAULT;
desc.SampleDesc.Count = 1;
desc.SampleDesc.Quality = 0;
+ viewDesc.Format = desc.Format;
ID3D11Texture2D * texture;
dxDevice->CreateTexture2D(&desc, subRes.Buffer(), &texture);
dxDevice->CreateShaderResourceView(texture, &viewDesc, &viewOut);
@@ -946,7 +951,7 @@ public:
desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ | D3D11_CPU_ACCESS_WRITE;
desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
desc.MiscFlags = D3D11_RESOURCE_MISC_GENERATE_MIPS;
- desc.MipLevels = texData.mipLevels;
+ desc.MipLevels = 1;
viewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D;
desc.Width = texData.textureSize;
desc.Height = texData.textureSize;
@@ -956,8 +961,9 @@ public:
dxDevice->CreateTexture3D(&desc, subRes.Buffer(), &texture);
if (inputDesc.arrayLength != 0)
viewDesc.ViewDimension = (D3D11_SRV_DIMENSION)(int)(viewDesc.ViewDimension + 1);
- viewDesc.Texture3D.MipLevels = texData.mipLevels;
+ viewDesc.Texture3D.MipLevels = 1;
viewDesc.Texture3D.MostDetailedMip = 0;
+ viewDesc.Format = desc.Format;
dxDevice->CreateShaderResourceView(texture, &viewDesc, &viewOut);
}
}