tests: Be robust against missing features when testing indirect state.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
a917d60ca5
commit
73700f4c3a
|
@ -1971,6 +1971,7 @@ void test_execute_indirect_state(void)
|
|||
const struct vec4 *expect, *v;
|
||||
uint32_t expected_output_size;
|
||||
uint32_t clear_vbo_mask;
|
||||
bool root_cbv;
|
||||
uint32_t size;
|
||||
|
||||
vkd3d_test_set_context("Test %u", i);
|
||||
|
@ -1982,7 +1983,26 @@ void test_execute_indirect_state(void)
|
|||
hr = ID3D12Device_CreateCommandSignature(context.device, &command_signature_desc,
|
||||
tests[i].needs_root_sig ? root_signatures[tests[i].pso_index] : NULL,
|
||||
&IID_ID3D12CommandSignature, (void**)&command_signature);
|
||||
ok(SUCCEEDED(hr), "Failed to create command signature, hr #%x.\n", hr);
|
||||
|
||||
/* Updating root CBV requires push BDA path, which we don't enable on NV by default yet. */
|
||||
root_cbv = false;
|
||||
for (j = 0; j < tests[i].indirect_argument_count; j++)
|
||||
{
|
||||
if (tests[i].indirect_arguments[j].Type == D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW)
|
||||
{
|
||||
root_cbv = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (FAILED(hr))
|
||||
{
|
||||
if (root_cbv && is_nvidia_device(context.device))
|
||||
skip("Creating indirect root CBV update failed. If the GPU is NVIDIA, try VKD3D_CONFIG=force_raw_va_cbv.\n");
|
||||
else
|
||||
skip("Failed creating command signature, skipping test.\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
argument_buffer = create_upload_buffer(context.device, 256 * 1024, NULL);
|
||||
argument_buffer_late = create_default_buffer(context.device, 256 * 1024,
|
||||
|
|
Loading…
Reference in New Issue