mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-15 02:00:33 +01:00
elk: always write the VUE header
ELK equivalent of !34211, also required to avoid potential rendering errors with hasvk. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34298>
This commit is contained in:
parent
fe7e0fd4f1
commit
255166a349
1 changed files with 6 additions and 14 deletions
|
|
@ -563,8 +563,6 @@ elk_fs_visitor::emit_urb_writes(const elk_fs_reg &gs_vertex_count)
|
|||
elk_vue_prog_data(this->prog_data);
|
||||
const struct elk_vs_prog_key *vs_key =
|
||||
(const struct elk_vs_prog_key *) this->key;
|
||||
const GLbitfield64 psiz_mask =
|
||||
VARYING_BIT_LAYER | VARYING_BIT_VIEWPORT | VARYING_BIT_PSIZ | VARYING_BIT_PRIMITIVE_SHADING_RATE;
|
||||
const struct intel_vue_map *vue_map = &vue_prog_data->vue_map;
|
||||
bool flush;
|
||||
elk_fs_reg sources[8];
|
||||
|
|
@ -634,12 +632,12 @@ elk_fs_visitor::emit_urb_writes(const elk_fs_reg &gs_vertex_count)
|
|||
switch (varying) {
|
||||
case VARYING_SLOT_PSIZ: {
|
||||
/* The point size varying slot is the vue header and is always in the
|
||||
* vue map. But often none of the special varyings that live there
|
||||
* are written and for the vertex shaders we can skip writing to the
|
||||
* VUE header because it is setup by the VF fixed function. All other
|
||||
* pre-rasterization stages should setup the VUE header properly as
|
||||
* describe in the SKL PRMs, Volume 7: 3D-Media-GPGPU, Vertex URB
|
||||
* Entry (VUE) Formats:
|
||||
* vue map. If anything in the header is going to be read back by HW,
|
||||
* we need to initialize it, in particular the viewport & layer
|
||||
* values.
|
||||
*
|
||||
* SKL PRMs, Volume 7: 3D-Media-GPGPU, Vertex URB Entry (VUE)
|
||||
* Formats:
|
||||
*
|
||||
* "VUEs are written in two ways:
|
||||
*
|
||||
|
|
@ -668,12 +666,6 @@ elk_fs_visitor::emit_urb_writes(const elk_fs_reg &gs_vertex_count)
|
|||
* - If Rendering is disabled, VertexHeaders are not required
|
||||
* anywhere."
|
||||
*/
|
||||
if ((vue_map->slots_valid & psiz_mask) == 0 &&
|
||||
stage == MESA_SHADER_VERTEX) {
|
||||
assert(length == 0);
|
||||
urb_offset++;
|
||||
break;
|
||||
}
|
||||
|
||||
elk_fs_reg zero(VGRF, alloc.allocate(dispatch_width / 8),
|
||||
ELK_REGISTER_TYPE_UD);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue