Skip to content

Commit ccf414e

Browse files
committed
Merge pull request godotengine#112989 from blueskythlikesclouds/typed-uav-load-additional-check
Check for Typed UAV Load Additional Formats capability when creating D3D12 device.
2 parents 0e182ee + 2331470 commit ccf414e

File tree

2 files changed

+3
-10
lines changed

2 files changed

+3
-10
lines changed

drivers/d3d12/rendering_device_driver_d3d12.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6245,7 +6245,7 @@ uint64_t RenderingDeviceDriverD3D12::api_trait_get(ApiTrait p_trait) {
62456245
bool RenderingDeviceDriverD3D12::has_feature(Features p_feature) {
62466246
switch (p_feature) {
62476247
case SUPPORTS_HALF_FLOAT:
6248-
return shader_capabilities.native_16bit_ops && storage_buffer_capabilities.storage_buffer_16_bit_access_is_supported;
6248+
return shader_capabilities.native_16bit_ops;
62496249
case SUPPORTS_FRAGMENT_SHADER_WITH_ONLY_SIDE_EFFECTS:
62506250
return true;
62516251
case SUPPORTS_BUFFER_DEVICE_ADDRESS:
@@ -6475,7 +6475,6 @@ Error RenderingDeviceDriverD3D12::_check_capabilities() {
64756475
subgroup_capabilities.wave_ops_supported = false;
64766476
shader_capabilities.shader_model = (D3D_SHADER_MODEL)0;
64776477
shader_capabilities.native_16bit_ops = false;
6478-
storage_buffer_capabilities.storage_buffer_16_bit_access_is_supported = false;
64796478
format_capabilities.relaxed_casting_supported = false;
64806479

64816480
{
@@ -6516,9 +6515,8 @@ Error RenderingDeviceDriverD3D12::_check_capabilities() {
65166515

65176516
D3D12_FEATURE_DATA_D3D12_OPTIONS options = {};
65186517
res = device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &options, sizeof(options));
6519-
if (SUCCEEDED(res)) {
6520-
storage_buffer_capabilities.storage_buffer_16_bit_access_is_supported = options.TypedUAVLoadAdditionalFormats;
6521-
}
6518+
ERR_FAIL_COND_V_MSG(!SUCCEEDED(res), ERR_UNAVAILABLE, "CheckFeatureSupport failed with error " + vformat("0x%08ux", (uint64_t)res) + ".");
6519+
ERR_FAIL_COND_V_MSG(!options.TypedUAVLoadAdditionalFormats, ERR_UNAVAILABLE, "No support for Typed UAV Load Additional Formats has been found.");
65226520

65236521
D3D12_FEATURE_DATA_D3D12_OPTIONS1 options1 = {};
65246522
res = device->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS1, &options1, sizeof(options1));

drivers/d3d12/rendering_device_driver_d3d12.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,6 @@ class RenderingDeviceDriverD3D12 : public RenderingDeviceDriver {
109109
bool native_16bit_ops = false;
110110
};
111111

112-
struct StorageBufferCapabilities {
113-
bool storage_buffer_16_bit_access_is_supported = false;
114-
};
115-
116112
struct FormatCapabilities {
117113
bool relaxed_casting_supported = false;
118114
};
@@ -138,7 +134,6 @@ class RenderingDeviceDriverD3D12 : public RenderingDeviceDriver {
138134
FragmentShadingRateCapabilities fsr_capabilities;
139135
FragmentDensityMapCapabilities fdm_capabilities;
140136
ShaderCapabilities shader_capabilities;
141-
StorageBufferCapabilities storage_buffer_capabilities;
142137
FormatCapabilities format_capabilities;
143138
BarrierCapabilities barrier_capabilities;
144139
MiscFeaturesSupport misc_features_support;

0 commit comments

Comments
 (0)