From b41d01d58031247516f04e29636055f843a445c6 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Tue, 2 Feb 2021 12:05:50 +0100 Subject: [PATCH] tests: Verify refcount semantics for ID3D12StateObjectProperties. The refcount is shared. Signed-off-by: Hans-Kristian Arntzen --- tests/d3d12.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/d3d12.c b/tests/d3d12.c index 4241443a..3d9e90e9 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -42205,6 +42205,25 @@ static void test_raytracing(void) const void* ray_gen_sbt; const void* ray_hit_sbt; const void* ray_miss_sbt; + unsigned int ref_count; + + /* Test reference count semantics for non-derived interface. */ + ref_count = ID3D12StateObjectProperties_AddRef(props); + ok(ref_count == 3, "Unexpected refcount %u", ref_count); + ref_count = ID3D12StateObjectProperties_AddRef(props); + ok(ref_count == 4, "Unexpected refcount %u", ref_count); + ref_count = ID3D12StateObject_AddRef(rt_pso); + ok(ref_count == 5, "Unexpected refcount %u", ref_count); + ref_count = ID3D12StateObject_AddRef(rt_pso); + ok(ref_count == 6, "Unexpected refcount %u", ref_count); + ref_count = ID3D12StateObjectProperties_Release(props); + ok(ref_count == 5, "Unexpected refcount %u", ref_count); + ref_count = ID3D12StateObjectProperties_Release(props); + ok(ref_count == 4, "Unexpected refcount %u", ref_count); + ref_count = ID3D12StateObject_Release(props); + ok(ref_count == 3, "Unexpected refcount %u", ref_count); + ref_count = ID3D12StateObject_Release(props); + ok(ref_count == 2, "Unexpected refcount %u", ref_count); ray_gen_sbt = ID3D12StateObjectProperties_GetShaderIdentifier(props, ray_gen); ray_hit_sbt = ID3D12StateObjectProperties_GetShaderIdentifier(props, ray_hit);