diff options
Diffstat (limited to 'tools/render-test')
| -rw-r--r-- | tools/render-test/render-test-main.cpp | 24 | ||||
| -rw-r--r-- | tools/render-test/shader-input-layout.cpp | 12 |
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) |
