vkd3d: Use unsafe_impl in CopyDescriptorsSimple.

This is an ultra-hot path and seems to show up somehow on profile.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2022-02-22 15:34:48 +01:00
parent dc752991ef
commit b309913b6d
2 changed files with 6 additions and 1 deletions

View File

@ -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)

View File

@ -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;