diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 45459ce5..f281d595 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -4055,7 +4055,7 @@ static void STDMETHODCALLTYPE d3d12_device_CopyDescriptorsSimple(d3d12_device_if iface, descriptor_count, dst_descriptor_range_offset.ptr, src_descriptor_range_offset.ptr, descriptor_heap_type); - device = impl_from_ID3D12Device(iface); + device = unsafe_impl_from_ID3D12Device(iface); if (descriptor_heap_type == D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV || descriptor_heap_type == D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER) diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 15d70fd9..7deb1a9c 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -2930,6 +2930,11 @@ bool d3d12_device_is_uma(struct d3d12_device *device, bool *coherent); void d3d12_device_mark_as_removed(struct d3d12_device *device, HRESULT reason, const char *message, ...) VKD3D_PRINTF_FUNC(3, 4); +static inline struct d3d12_device *unsafe_impl_from_ID3D12Device(d3d12_device_iface *iface) +{ + return CONTAINING_RECORD(iface, struct d3d12_device, ID3D12Device_iface); +} + static inline struct d3d12_device *impl_from_ID3D12Device(d3d12_device_iface *iface) { extern CONST_VTBL struct ID3D12Device9Vtbl d3d12_device_vtbl;