return util_logbase2(samples);
}
-static inline enum a4xx_index_size
-tu6_index_size(VkIndexType type)
-{
- switch (type) {
- case VK_INDEX_TYPE_UINT16:
- return INDEX4_SIZE_16_BIT;
- case VK_INDEX_TYPE_UINT32:
- return INDEX4_SIZE_32_BIT;
- case VK_INDEX_TYPE_UINT8_EXT:
- return INDEX4_SIZE_8_BIT;
- default:
- unreachable("invalid VkIndexType");
- }
-}
-
static inline uint32_t
tu6_stage2opcode(gl_shader_stage stage)
{
[VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY] = DI_PT_LINESTRIP_ADJ,
[VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY] = DI_PT_TRI_ADJ,
[VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY] = DI_PT_TRISTRIP_ADJ,
- [VK_PRIMITIVE_TOPOLOGY_PATCH_LIST] = 0,
+ /* Return PATCH0 and update in tu_pipeline_builder_parse_tessellation */
+ [VK_PRIMITIVE_TOPOLOGY_PATCH_LIST] = DI_PT_PATCHES0,
};
assert(topology < ARRAY_SIZE(lookup));
return lookup[topology];
}
}
+static inline enum a6xx_polygon_mode
+tu6_polygon_mode(VkPolygonMode mode)
+{
+ switch (mode) {
+ case VK_POLYGON_MODE_POINT:
+ return POLYMODE6_POINTS;
+ case VK_POLYGON_MODE_LINE:
+ return POLYMODE6_LINES;
+ case VK_POLYGON_MODE_FILL:
+ return POLYMODE6_TRIANGLES;
+ default:
+ unreachable("bad polygon mode");
+ }
+}
+
#endif /* TU_UTIL_H */