summaryrefslogtreecommitdiffstats
path: root/tools/render-test/render-test-main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test/render-test-main.cpp')
-rw-r--r--tools/render-test/render-test-main.cpp24
1 files changed, 19 insertions, 5 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;