nak: Add support for gl_PrimitiveShadingRateEXT
This aliases gl_ViewportIndex in the NVIDIA attribute space. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31585>
This commit is contained in:
committed by
Marge Bot
parent
ab8e6bf4c3
commit
99107ef8d4
@@ -183,9 +183,12 @@ struct nak_shader_info {
|
||||
struct {
|
||||
bool writes_layer;
|
||||
bool writes_point_size;
|
||||
bool writes_vprs_table_index;
|
||||
uint8_t clip_enable;
|
||||
uint8_t cull_enable;
|
||||
|
||||
uint8_t _pad[3];
|
||||
|
||||
struct nak_xfb_info xfb;
|
||||
} vtg;
|
||||
|
||||
|
||||
@@ -290,6 +290,8 @@ impl ShaderBin {
|
||||
ShaderIoInfo::Vtg(io) => nak_shader_info__bindgen_ty_2 {
|
||||
writes_layer: io.attr_written(NAK_ATTR_RT_ARRAY_INDEX),
|
||||
writes_point_size: io.attr_written(NAK_ATTR_POINT_SIZE),
|
||||
writes_vprs_table_index: io
|
||||
.attr_written(NAK_ATTR_VPRS_TABLE_INDEX),
|
||||
clip_enable: io.clip_enable.try_into().unwrap(),
|
||||
cull_enable: io.cull_enable.try_into().unwrap(),
|
||||
xfb: if let Some(xfb) = &io.xfb {
|
||||
@@ -297,6 +299,7 @@ impl ShaderBin {
|
||||
} else {
|
||||
unsafe { std::mem::zeroed() }
|
||||
},
|
||||
_pad: Default::default(),
|
||||
},
|
||||
_ => unsafe { std::mem::zeroed() },
|
||||
},
|
||||
|
||||
@@ -351,6 +351,9 @@ nak_varying_attr_addr(const struct nak_compiler *nak, gl_varying_slot slot)
|
||||
case VARYING_SLOT_POS: return NAK_ATTR_POSITION;
|
||||
case VARYING_SLOT_CLIP_DIST0: return NAK_ATTR_CLIP_CULL_DIST_0;
|
||||
case VARYING_SLOT_CLIP_DIST1: return NAK_ATTR_CLIP_CULL_DIST_4;
|
||||
case VARYING_SLOT_PRIMITIVE_SHADING_RATE:
|
||||
return nak->sm >= 86 ? NAK_ATTR_VPRS_TABLE_INDEX
|
||||
: NAK_ATTR_VIEWPORT_INDEX;
|
||||
default: unreachable("Invalid varying slot");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,9 @@ enum ENUM_PACKED nak_attr {
|
||||
/* Patch attributes */
|
||||
NAK_ATTR_PATCH_START = 0x020,
|
||||
|
||||
/* System values B? */
|
||||
NAK_ATTR_VPRS_TABLE_INDEX = 0x5c,
|
||||
|
||||
/* System values B */
|
||||
NAK_ATTR_PRIMITIVE_ID = 0x060,
|
||||
NAK_ATTR_RT_ARRAY_INDEX = 0x064,
|
||||
|
||||
Reference in New Issue
Block a user