tu: Fix linemode for tessellation with isolines

Fixes: 542211676c ("turnip: enable VK_EXT_line_rasterization")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17190>
(cherry picked from commit d455838081)

Conflicts:
	src/gallium/drivers/zink/ci/zink-tu-a630-fails.txt

CI file doesn't exist in 22.1, and has been deleted
This commit is contained in:
Connor Abbott 2022-06-22 17:42:46 +02:00 committed by Dylan Baker
parent e43617904a
commit 4fbc8fb28e
3 changed files with 10 additions and 2 deletions

View file

@ -337,7 +337,7 @@
"description": "tu: Fix linemode for tessellation with isolines",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "542211676c58b0410662e1a959e259487c103e71"
},

View file

@ -2910,7 +2910,9 @@ tu_pipeline_builder_parse_rasterization(struct tu_pipeline_builder *builder,
pipeline->line_mode = RECTANGULAR;
if (tu6_primtype_line(pipeline->ia.primtype)) {
if (tu6_primtype_line(pipeline->ia.primtype) ||
(tu6_primtype_patches(pipeline->ia.primtype) &&
pipeline->tess.patch_type == IR3_TESS_ISOLINES)) {
const VkPipelineRasterizationLineStateCreateInfoEXT *rast_line_state =
vk_find_struct_const(rast_info->pNext,
PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT);

View file

@ -99,6 +99,12 @@ tu6_primtype_line(enum pc_di_primtype type)
}
}
static inline bool
tu6_primtype_patches(enum pc_di_primtype type)
{
return type >= DI_PT_PATCHES0 && type <= DI_PT_PATCHES31;
}
static inline enum pc_di_primtype
tu6_primtype(VkPrimitiveTopology topology)
{