diff --git a/src/nouveau/compiler/nak.h b/src/nouveau/compiler/nak.h index 3006364668f..afbeef14d7e 100644 --- a/src/nouveau/compiler/nak.h +++ b/src/nouveau/compiler/nak.h @@ -100,13 +100,6 @@ enum ENUM_PACKED nak_ts_spacing { NAK_TS_SPACING_FRACT_EVEN = 2, }; -enum ENUM_PACKED nak_ts_prims { - NAK_TS_PRIMS_POINTS = 0, - NAK_TS_PRIMS_LINES = 1, - NAK_TS_PRIMS_TRIANGLES_CW = 2, - NAK_TS_PRIMS_TRIANGLES_CCW = 3, -}; - struct nak_xfb_info { uint32_t stride[4]; uint8_t stream[4]; @@ -190,11 +183,10 @@ struct nak_shader_info { struct { enum nak_ts_domain domain; enum nak_ts_spacing spacing; - enum nak_ts_prims prims; bool ccw; bool point_mode; - uint8_t _pad[7]; + uint8_t _pad[8]; } ts; /* Used to initialize the union for other stages */ diff --git a/src/nouveau/compiler/nak/api.rs b/src/nouveau/compiler/nak/api.rs index 63794c3a55f..166064bfa6c 100644 --- a/src/nouveau/compiler/nak/api.rs +++ b/src/nouveau/compiler/nak/api.rs @@ -303,7 +303,6 @@ impl ShaderBin { ts: nak_shader_info__bindgen_ty_1__bindgen_ty_3 { domain: ts_info.domain as u8, spacing: ts_info.spacing as u8, - prims: ts_info.primitives as u8, ccw: ts_info.ccw, point_mode: ts_info.point_mode, _pad: Default::default(), diff --git a/src/nouveau/compiler/nak/from_nir.rs b/src/nouveau/compiler/nak/from_nir.rs index 3c00e240dac..f8ce0e36840 100644 --- a/src/nouveau/compiler/nak/from_nir.rs +++ b/src/nouveau/compiler/nak/from_nir.rs @@ -109,17 +109,6 @@ fn init_info_from_nir(nak: &nak_compiler, nir: &nir_shader) -> ShaderInfo { } _ => panic!("Invalid gl_tess_spacing"), }, - primitives: if info_tess.point_mode() { - TessellationPrimitives::Points - } else if info_tess._primitive_mode - == TESS_PRIMITIVE_ISOLINES - { - TessellationPrimitives::Lines - } else if info_tess.ccw() { - TessellationPrimitives::TrianglesCCW - } else { - TessellationPrimitives::TrianglesCW - }, point_mode: info_tess.point_mode(), ccw: info_tess.ccw(), }) diff --git a/src/nouveau/compiler/nak/ir.rs b/src/nouveau/compiler/nak/ir.rs index a247b8d7383..857e3c1a045 100644 --- a/src/nouveau/compiler/nak/ir.rs +++ b/src/nouveau/compiler/nak/ir.rs @@ -9147,20 +9147,10 @@ pub enum TessellationSpacing { FractionalEven = NAK_TS_SPACING_FRACT_EVEN, } -#[repr(u8)] -#[derive(Clone, Copy, Debug)] -pub enum TessellationPrimitives { - Points = NAK_TS_PRIMS_POINTS, - Lines = NAK_TS_PRIMS_LINES, - TrianglesCW = NAK_TS_PRIMS_TRIANGLES_CW, - TrianglesCCW = NAK_TS_PRIMS_TRIANGLES_CCW, -} - #[derive(Debug)] pub struct TessellationShaderInfo { pub domain: TessellationDomain, pub spacing: TessellationSpacing, - pub primitives: TessellationPrimitives, pub ccw: bool, pub point_mode: bool, } diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c b/src/nouveau/vulkan/nvk_cmd_draw.c index 954359efe37..f5b7c6766a5 100644 --- a/src/nouveau/vulkan/nvk_cmd_draw.c +++ b/src/nouveau/vulkan/nvk_cmd_draw.c @@ -1610,8 +1610,10 @@ nvk_cmd_bind_graphics_shader(struct nvk_cmd_buffer *cmd, NVDEF(NV9097, SET_TESSELLATION_PARAMETERS, SPACING, spacing) | \ NVDEF(NV9097, SET_TESSELLATION_PARAMETERS, OUTPUT_PRIMITIVES, prims) -#define NVK_MME_TESS_STATE(domain, spacing, prims, flags) \ - (NVK_MME_TESS_PARAMS(domain, spacing, prims) | flags) +#define NVK_MME_TESS_STATE(domain, spacing, flags) \ + NVDEF(NV9097, SET_TESSELLATION_PARAMETERS, DOMAIN_TYPE, domain) | \ + NVDEF(NV9097, SET_TESSELLATION_PARAMETERS, SPACING, spacing) | \ + flags #define LOWER_LEFT_BIT 12 #define POINT_MODE_BIT 13 @@ -1624,15 +1626,13 @@ nvk_cmd_bind_graphics_shader(struct nvk_cmd_buffer *cmd, uint32_t nvk_mme_tess_params(enum nak_ts_domain domain, enum nak_ts_spacing spacing, - enum nak_ts_prims prims, bool ccw, bool point_mode) { /* This is laid out the same as SET_TESSELLATION_PARAMETERS, only with an * extra bit for lower_left */ uint16_t params = ((uint16_t)domain << 0) | - ((uint16_t)spacing << 4) | - ((uint16_t)prims << 8); + ((uint16_t)spacing << 4); if (ccw) params |= CCW; if (point_mode) @@ -1722,12 +1722,12 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ { } }, .params = (uint32_t[]) { - NVK_MME_VAL_MASK(NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CW, 0), 0xffff) + NVK_MME_VAL_MASK(NVK_MME_TESS_STATE(TRIANGLE, INTEGER, 0), 0xffff) }, .expected = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CW, 0) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, 0) }, { NV9097_SET_TESSELLATION_PARAMETERS, @@ -1739,7 +1739,7 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ .init = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CW, 0) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, 0) }, { } }, @@ -1747,7 +1747,7 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ .expected = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CW, LOWER_LEFT) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, LOWER_LEFT) }, { NV9097_SET_TESSELLATION_PARAMETERS, @@ -1759,7 +1759,7 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ .init = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CCW, CCW) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, CCW) }, { } }, @@ -1767,7 +1767,7 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ .expected = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CCW, LOWER_LEFT | CCW) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, LOWER_LEFT | CCW) }, { NV9097_SET_TESSELLATION_PARAMETERS, @@ -1779,7 +1779,7 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ .init = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CCW, CCW) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, CCW) }, { } }, @@ -1787,7 +1787,7 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ .expected = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CCW, CCW | POINT_MODE) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, CCW | POINT_MODE) }, { NV9097_SET_TESSELLATION_PARAMETERS, @@ -1799,17 +1799,17 @@ const struct nvk_mme_test_case nvk_mme_set_tess_params_tests[] = {{ .init = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(TRIANGLE, INTEGER, TRIANGLES_CW, 0) + NVK_MME_TESS_STATE(TRIANGLE, INTEGER, 0) }, { } }, .params = (uint32_t[]) { - NVK_MME_VAL_MASK(NVK_MME_TESS_STATE(ISOLINE, INTEGER, TRIANGLES_CW, 0), 0xffff) + NVK_MME_VAL_MASK(NVK_MME_TESS_STATE(ISOLINE, INTEGER, 0), 0xffff) }, .expected = (struct nvk_mme_mthd_data[]) { { NVK_SET_MME_SCRATCH(TESS_PARAMS), - NVK_MME_TESS_STATE(ISOLINE, INTEGER, TRIANGLES_CW, 0) + NVK_MME_TESS_STATE(ISOLINE, INTEGER, 0) }, { NV9097_SET_TESSELLATION_PARAMETERS, diff --git a/src/nouveau/vulkan/nvk_mme.h b/src/nouveau/vulkan/nvk_mme.h index fd95cc2b98e..a47c7e62f4d 100644 --- a/src/nouveau/vulkan/nvk_mme.h +++ b/src/nouveau/vulkan/nvk_mme.h @@ -251,7 +251,6 @@ void nvk_mme_set_z_clamp(struct mme_builder *b); uint32_t nvk_mme_tess_params(enum nak_ts_domain domain, enum nak_ts_spacing spacing, - enum nak_ts_prims prims, bool ccw, bool point_mode); uint32_t nvk_mme_anti_alias_min_sample_shading(float mss); uint32_t nvk_mme_shading_rate_control_sample_shading(bool sample_shading); diff --git a/src/nouveau/vulkan/nvk_shader.c b/src/nouveau/vulkan/nvk_shader.c index 350f7199417..998a6b0c848 100644 --- a/src/nouveau/vulkan/nvk_shader.c +++ b/src/nouveau/vulkan/nvk_shader.c @@ -691,7 +691,6 @@ nvk_shader_fill_push(struct nvk_device *dev, P_1INC(p, NVB197, CALL_MME_MACRO(NVK_MME_SET_TESS_PARAMS)); P_INLINE_DATA(p, nvk_mme_tess_params(shader->info.ts.domain, shader->info.ts.spacing, - shader->info.ts.prims, shader->info.ts.ccw, shader->info.ts.point_mode)); }