mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
tests: Add test for root signature serialization.
This commit is contained in:
parent
4629cbdf8a
commit
6b9c3b8971
@ -7680,7 +7680,41 @@ static void test_root_signature_deserialization_(unsigned int line, const DWORD
|
|||||||
ok_(line)(!refcount, "ID3D12RootSignatureDeserializer has %u references left.\n", (unsigned int)refcount);
|
ok_(line)(!refcount, "ID3D12RootSignatureDeserializer has %u references left.\n", (unsigned int)refcount);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_root_signature_deserializer(void)
|
#define test_root_signature_serialization(a, b, c) test_root_signature_serialization_(__LINE__, a, b, c)
|
||||||
|
static void test_root_signature_serialization_(unsigned int line, const DWORD *code, size_t code_size,
|
||||||
|
const D3D12_ROOT_SIGNATURE_DESC *desc)
|
||||||
|
{
|
||||||
|
DWORD *blob_buffer;
|
||||||
|
size_t blob_size;
|
||||||
|
ID3DBlob *blob;
|
||||||
|
unsigned int i;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
hr = D3D12SerializeRootSignature(desc, D3D_ROOT_SIGNATURE_VERSION_1_0, &blob, NULL);
|
||||||
|
ok_(line)(hr == S_OK, "Failed to serialize root signature, hr %#x.\n", hr);
|
||||||
|
|
||||||
|
blob_buffer = ID3D10Blob_GetBufferPointer(blob);
|
||||||
|
blob_size = ID3D10Blob_GetBufferSize(blob);
|
||||||
|
ok_(line)(blob_size == code_size, "Got size %u, expected %u.\n",
|
||||||
|
(unsigned int)blob_size, (unsigned int)code_size);
|
||||||
|
|
||||||
|
ok_(line)(blob_buffer[0] == code[0], "Got magic %#x, expected %#x.\n",
|
||||||
|
(unsigned int)blob_buffer[0], (unsigned int)code[0]);
|
||||||
|
for (i = 1; i < 5; ++i)
|
||||||
|
{
|
||||||
|
todo_(line)(blob_buffer[i] == code[i], "Got checksum %#x, expected %#x at %u.\n",
|
||||||
|
(unsigned int)blob_buffer[i], (unsigned int)code[i], i - 1);
|
||||||
|
}
|
||||||
|
for (; i < code_size / sizeof(DWORD); ++i)
|
||||||
|
{
|
||||||
|
ok_(line)(blob_buffer[i] == code[i], "Got dword %#x, expected %#x at %u.\n",
|
||||||
|
(unsigned int)blob_buffer[i], (unsigned int)code[i], i);
|
||||||
|
}
|
||||||
|
|
||||||
|
ID3D10Blob_Release(blob);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_root_signature_byte_code(void)
|
||||||
{
|
{
|
||||||
ID3D12RootSignatureDeserializer *deserializer;
|
ID3D12RootSignatureDeserializer *deserializer;
|
||||||
ULONG refcount;
|
ULONG refcount;
|
||||||
@ -7956,6 +7990,21 @@ static void test_root_signature_deserializer(void)
|
|||||||
&default_static_sampler_rootsig_desc);
|
&default_static_sampler_rootsig_desc);
|
||||||
test_root_signature_deserialization(static_samplers_rootsig, sizeof(static_samplers_rootsig),
|
test_root_signature_deserialization(static_samplers_rootsig, sizeof(static_samplers_rootsig),
|
||||||
&static_samplers_rootsig_desc);
|
&static_samplers_rootsig_desc);
|
||||||
|
|
||||||
|
test_root_signature_serialization(empty_rootsig, sizeof(empty_rootsig), &empty_rootsig_desc);
|
||||||
|
test_root_signature_serialization(ia_rootsig, sizeof(ia_rootsig), &ia_rootsig_desc);
|
||||||
|
test_root_signature_serialization(deny_ps_rootsig, sizeof(deny_ps_rootsig), &deny_ps_rootsig_desc);
|
||||||
|
test_root_signature_serialization(cbv_rootsig, sizeof(cbv_rootsig), &cbv_rootsig_desc);
|
||||||
|
test_root_signature_serialization(cbv2_rootsig, sizeof(cbv2_rootsig), &cbv2_rootsig_desc);
|
||||||
|
test_root_signature_serialization(srv_rootsig, sizeof(srv_rootsig), &srv_rootsig_desc);
|
||||||
|
test_root_signature_serialization(uav_rootsig, sizeof(uav_rootsig), &uav_rootsig_desc);
|
||||||
|
test_root_signature_serialization(constants_rootsig, sizeof(constants_rootsig), &constants_rootsig_desc);
|
||||||
|
test_root_signature_serialization(descriptor_table_rootsig, sizeof(descriptor_table_rootsig),
|
||||||
|
&descriptor_table_rootsig_desc);
|
||||||
|
test_root_signature_serialization(default_static_sampler_rootsig, sizeof(default_static_sampler_rootsig),
|
||||||
|
&default_static_sampler_rootsig_desc);
|
||||||
|
test_root_signature_serialization(static_samplers_rootsig, sizeof(static_samplers_rootsig),
|
||||||
|
&static_samplers_rootsig_desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_cs_constant_buffer(void)
|
static void test_cs_constant_buffer(void)
|
||||||
@ -16321,7 +16370,7 @@ START_TEST(d3d12)
|
|||||||
run_test(test_bundle_state_inheritance);
|
run_test(test_bundle_state_inheritance);
|
||||||
run_test(test_shader_instructions);
|
run_test(test_shader_instructions);
|
||||||
run_test(test_shader_interstage_interface);
|
run_test(test_shader_interstage_interface);
|
||||||
run_test(test_root_signature_deserializer);
|
run_test(test_root_signature_byte_code);
|
||||||
run_test(test_cs_constant_buffer);
|
run_test(test_cs_constant_buffer);
|
||||||
run_test(test_constant_buffer_relative_addressing);
|
run_test(test_constant_buffer_relative_addressing);
|
||||||
run_test(test_immediate_constant_buffer);
|
run_test(test_immediate_constant_buffer);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user