diff --git a/ext/native/thin3d/thin3d.h b/ext/native/thin3d/thin3d.h index 6365d9d9c6..c07b6130b5 100644 --- a/ext/native/thin3d/thin3d.h +++ b/ext/native/thin3d/thin3d.h @@ -493,6 +493,8 @@ struct PipelineDesc { struct DeviceCaps { GPUVendor vendor; + uint32_t deviceID; // use caution! + DataFormat preferredDepthBufferFormat; DataFormat preferredShadowMapFormatLow; DataFormat preferredShadowMapFormatHigh; diff --git a/ext/native/thin3d/thin3d_d3d11.cpp b/ext/native/thin3d/thin3d_d3d11.cpp index e93abb4c7e..2d8fae57b3 100644 --- a/ext/native/thin3d/thin3d_d3d11.cpp +++ b/ext/native/thin3d/thin3d_d3d11.cpp @@ -267,6 +267,7 @@ D3D11DrawContext::D3D11DrawContext(ID3D11Device *device, ID3D11DeviceContext *de default: caps_.vendor = GPUVendor::VENDOR_UNKNOWN; } + caps_.deviceID = desc.DeviceId; adapter->Release(); } dxgiDevice->Release(); diff --git a/ext/native/thin3d/thin3d_d3d9.cpp b/ext/native/thin3d/thin3d_d3d9.cpp index 8273446d48..d5d4c45bcd 100644 --- a/ext/native/thin3d/thin3d_d3d9.cpp +++ b/ext/native/thin3d/thin3d_d3d9.cpp @@ -603,7 +603,7 @@ D3D9Context::D3D9Context(IDirect3D9 *d3d, IDirect3D9Ex *d3dEx, int adapterId, ID } else { strcpy(shadeLangVersion_, "N/A"); } - + caps_.deviceID = identifier_.DeviceId; caps_.multiViewport = false; caps_.anisoSupported = true; caps_.depthRangeMinusOneToOne = false; diff --git a/ext/native/thin3d/thin3d_vulkan.cpp b/ext/native/thin3d/thin3d_vulkan.cpp index 7277647eb2..1ff74d1d5a 100644 --- a/ext/native/thin3d/thin3d_vulkan.cpp +++ b/ext/native/thin3d/thin3d_vulkan.cpp @@ -791,6 +791,7 @@ VKContext::VKContext(VulkanContext *vulkan, bool splitSubmit) bugs_.Infest(Bugs::DUAL_SOURCE_BLENDING_BROKEN); } + caps_.deviceID = deviceProps.deviceID; device_ = vulkan->GetDevice(); queue_ = vulkan->GetGraphicsQueue();