summaryrefslogtreecommitdiffstats
path: root/tools/render-test
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test')
-rw-r--r--tools/render-test/render-test-main.cpp24
-rw-r--r--tools/render-test/shader-input-layout.cpp12
2 files changed, 30 insertions, 6 deletions
diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp
index c6f775312..5feeeaf21 100644
--- a/tools/render-test/render-test-main.cpp
+++ b/tools/render-test/render-test-main.cpp
@@ -232,13 +232,20 @@ struct AssignValsFromLayoutContext
SlangResult assignTexture(ShaderCursor const& dstCursor, ShaderInputLayout::TextureVal* srcVal)
{
ComPtr<ITextureResource> texture;
- SLANG_RETURN_ON_FAIL(ShaderRendererUtil::generateTextureResource(
- srcVal->textureDesc, ResourceState::ShaderResource, device, texture));
+ ResourceState defaultState = ResourceState::ShaderResource;
+ IResourceView::Type viewType = IResourceView::Type::ShaderResource;
+
+ if (srcVal->textureDesc.isRWTexture)
+ {
+ defaultState = ResourceState::UnorderedAccess;
+ viewType = IResourceView::Type::UnorderedAccess;
+ }
- // TODO: support UAV textures...
+ SLANG_RETURN_ON_FAIL(ShaderRendererUtil::generateTextureResource(
+ srcVal->textureDesc, defaultState, device, texture));
IResourceView::Desc viewDesc;
- viewDesc.type = IResourceView::Type::ShaderResource;
+ viewDesc.type = viewType;
viewDesc.format = texture->getDesc()->format;
auto textureView = device->createTextureView(
texture,
@@ -1078,7 +1085,14 @@ static SlangResult _innerMain(Slang::StdWriters* stdWriters, SlangSession* sessi
desc.requiredFeatures = requiredFeatureList.getBuffer();
desc.requiredFeatureCount = (int)requiredFeatureList.getCount();
-
+ for (int i = 0; i < options.slangArgCount; i++)
+ {
+ if (UnownedStringSlice(options.slangArgs[i]) == "-matrix-layout-column-major")
+ {
+ desc.slang.defaultMatrixLayoutMode = SLANG_MATRIX_LAYOUT_COLUMN_MAJOR;
+ }
+ }
+
desc.nvapiExtnSlot = int(nvapiExtnSlot);
desc.slang.slangGlobalSession = session;
diff --git a/tools/render-test/shader-input-layout.cpp b/tools/render-test/shader-input-layout.cpp
index 43dfee804..bece936dd 100644
--- a/tools/render-test/shader-input-layout.cpp
+++ b/tools/render-test/shader-input-layout.cpp
@@ -416,7 +416,17 @@ namespace renderer_test
String parseTypeName(TokenReader& parser)
{
- return parser.ReadWord();
+ String typeName = parser.ReadWord();
+ if (parser.AdvanceIf("<"))
+ {
+ StringBuilder sb;
+ sb << typeName << "<";
+ sb << parseTypeName(parser);
+ sb << ">";
+ parser.Read(">");
+ return sb.ProduceString();
+ }
+ return typeName;
}
RefPtr<ShaderInputLayout::Val> parseValExpr(TokenReader& parser)