diff --git a/include/vkd3d_d3d12.idl b/include/vkd3d_d3d12.idl index d647b48c..29f4ab3c 100644 --- a/include/vkd3d_d3d12.idl +++ b/include/vkd3d_d3d12.idl @@ -30,6 +30,8 @@ const UINT D3D12_MAX_ROOT_COST = 64; const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767; const UINT D3D12_VIEWPORT_BOUNDS_MIN = -32768; +const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; + const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff; cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)") cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)") diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 3a9dad03..69b6a30f 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -777,10 +777,14 @@ static void vkd3d_check_feature_level_11_requirements(const VkPhysicalDeviceLimi CHECK_MIN_REQUIREMENT(maxPushConstantsSize, D3D12_MAX_ROOT_COST * sizeof(uint32_t)); CHECK_MIN_REQUIREMENT(maxComputeSharedMemorySize, D3D12_CS_TGSM_REGISTER_COUNT * sizeof(uint32_t)); + CHECK_MAX_REQUIREMENT(viewportBoundsRange[0], D3D12_VIEWPORT_BOUNDS_MIN); CHECK_MIN_REQUIREMENT(viewportBoundsRange[1], D3D12_VIEWPORT_BOUNDS_MAX); CHECK_MIN_REQUIREMENT(viewportSubPixelBits, 8); + CHECK_MIN_REQUIREMENT(maxPerStageDescriptorUniformBuffers, + D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT); + CHECK_FEATURE(imageCubeArray); CHECK_FEATURE(independentBlend); CHECK_FEATURE(geometryShader);