diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-03-04 18:32:52 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-03-04 18:42:31 +0300 |
commit | c27e1efbf18cff858db35a3eda5dcdde7ad450d6 (patch) | |
tree | e29942a8dd4d5de808c326741da4bfedb66e02c4 /main.cpp | |
parent | 01968c448604665593b50c5206a50bf849753464 (diff) |
HLSL: Add option to always treat SSBO as UAV, even with readonly.
This can make codegen more predictable since ByteAddressBuffer is SRV
and not UAV.
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -556,6 +556,7 @@ struct CLIArguments bool hlsl = false; bool hlsl_compat = false; bool hlsl_support_nonzero_base = false; + bool hlsl_force_storage_buffer_as_uav = false; HLSLBindingFlags hlsl_binding_flags = 0; bool vulkan_semantics = false; bool flatten_multidimensional_arrays = false; @@ -624,6 +625,7 @@ static void print_help() "\t[--hlsl-enable-compat]\n" "\t[--hlsl-support-nonzero-basevertex-baseinstance]\n" "\t[--hlsl-auto-binding (push, cbv, srv, uav, sampler, all)]\n" + "\t[--hlsl-force-storage-buffer-as-uav]\n" "\t[--separate-shader-objects]\n" "\t[--pls-in format input-name]\n" "\t[--pls-out format output-name]\n" @@ -974,6 +976,7 @@ static string compile_iteration(const CLIArguments &args, std::vector<uint32_t> } hlsl_opts.support_nonzero_base_vertex_base_instance = args.hlsl_support_nonzero_base; + hlsl_opts.force_storage_buffer_as_uav = args.hlsl_force_storage_buffer_as_uav; hlsl->set_hlsl_options(hlsl_opts); hlsl->set_resource_binding_flags(args.hlsl_binding_flags); } @@ -1129,6 +1132,9 @@ static int main_inner(int argc, char *argv[]) cbs.add("--hlsl-auto-binding", [&args](CLIParser &parser) { args.hlsl_binding_flags |= hlsl_resource_type_to_flag(parser.next_string()); }); + cbs.add("--hlsl-force-storage-buffer-as-uav", [&args](CLIParser &) { + args.hlsl_force_storage_buffer_as_uav = true; + }); cbs.add("--vulkan-semantics", [&args](CLIParser &) { args.vulkan_semantics = true; }); cbs.add("-V", [&args](CLIParser &) { args.vulkan_semantics = true; }); cbs.add("--flatten-multidimensional-arrays", [&args](CLIParser &) { args.flatten_multidimensional_arrays = true; }); |