diff options
author | Bas Nieuwenhuizen <[email protected]> | 2017-10-06 01:10:11 +0200 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2017-10-06 01:41:29 +0200 |
commit | c62afd094dc6aef58ba7f12f01b90c46e1f94262 (patch) | |
tree | af8e69dcda56330e2c5c6633c5ff7fba523e0a8e /src/amd/vulkan/radv_pipeline.c | |
parent | ca2163463239ad121a68e603105c10739815967f (diff) |
radv: Allow setting the domain origin in tess.
Reviewed-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_pipeline.c')
-rw-r--r-- | src/amd/vulkan/radv_pipeline.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 5800f297074..95a00cb357d 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -1542,11 +1542,19 @@ calculate_tess_state(struct radv_pipeline *pipeline, break; } + bool ccw = tes->info.tes.ccw; + const VkPipelineTessellationDomainOriginStateCreateInfoKHR *domain_origin_state = + vk_find_struct_const(pCreateInfo->pTessellationState, + PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR); + + if (domain_origin_state && domain_origin_state->domainOrigin != VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR) + ccw = !ccw; + if (tes->info.tes.point_mode) topology = V_028B6C_OUTPUT_POINT; else if (tes->info.tes.primitive_mode == GL_ISOLINES) topology = V_028B6C_OUTPUT_LINE; - else if (tes->info.tes.ccw) + else if (ccw) topology = V_028B6C_OUTPUT_TRIANGLE_CW; else topology = V_028B6C_OUTPUT_TRIANGLE_CCW; |