vkd3d: Enable conservative rasterization tier 3.

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
This commit is contained in:
Philip Rebohle 2021-03-24 12:59:17 +01:00 committed by Hans-Kristian Arntzen
parent 6476fabb0b
commit 2f1b23ece6
1 changed files with 17 additions and 2 deletions

View File

@ -4465,6 +4465,22 @@ static D3D12_TILED_RESOURCES_TIER d3d12_device_determine_tiled_resources_tier(st
return D3D12_TILED_RESOURCES_TIER_2;
}
static D3D12_CONSERVATIVE_RASTERIZATION_TIER d3d12_device_determine_conservative_rasterization_tier(struct d3d12_device *device)
{
const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *conservative_properties = &device->device_info.conservative_rasterization_properties;
if (!device->vk_info.EXT_conservative_rasterization)
return D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED;
if (!conservative_properties->degenerateTrianglesRasterized)
return D3D12_CONSERVATIVE_RASTERIZATION_TIER_1;
if (!conservative_properties->fullyCoveredFragmentShaderInputVariable)
return D3D12_CONSERVATIVE_RASTERIZATION_TIER_2;
return D3D12_CONSERVATIVE_RASTERIZATION_TIER_3;
}
static D3D12_RAYTRACING_TIER d3d12_device_determine_ray_tracing_tier(struct d3d12_device *device)
{
const struct vkd3d_vk_instance_procs *vk_procs = &device->vkd3d_instance->vk_procs;
@ -4570,8 +4586,7 @@ static void d3d12_device_caps_init_feature_options(struct d3d12_device *device)
features->shaderStorageImageReadWithoutFormat;
/* Requires VK_EXT_fragment_shader_interlock */
options->ROVsSupported = FALSE;
/* Requires VK_EXT_conservative_rasterization */
options->ConservativeRasterizationTier = D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED;
options->ConservativeRasterizationTier = d3d12_device_determine_conservative_rasterization_tier(device);
options->MaxGPUVirtualAddressBitsPerResource = 40; /* XXX */
options->StandardSwizzle64KBSupported = FALSE;
options->CrossNodeSharingTier = D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED;