mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 09:50:08 +01:00
i965/blorp: Disable vertex element swizzling
Without vertex elements originating directly from vertex fetcher are not passed to wm-state correctly. Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
12783aac50
commit
3487d2e7bf
2 changed files with 18 additions and 4 deletions
|
|
@ -448,8 +448,15 @@ gen7_blorp_emit_sf_config(struct brw_context *brw,
|
|||
|
||||
BEGIN_BATCH(14);
|
||||
OUT_BATCH(_3DSTATE_SBE << 16 | (14 - 2));
|
||||
OUT_BATCH(GEN7_SBE_SWIZZLE_ENABLE |
|
||||
num_varyings << GEN7_SBE_NUM_OUTPUTS_SHIFT |
|
||||
|
||||
/* There is no need for swizzling (GEN7_SBE_SWIZZLE_ENABLE). All the
|
||||
* vertex data coming from vertex fetcher is taken as unmodified
|
||||
* (i.e., passed through). Vertex shader state is disabled and vertex
|
||||
* fetcher builds complete vertex entries including VUE header.
|
||||
* This is for unknown reason really needed to be disabled when more
|
||||
* than one vec4 worth of vertex attributes are needed.
|
||||
*/
|
||||
OUT_BATCH(num_varyings << GEN7_SBE_NUM_OUTPUTS_SHIFT |
|
||||
1 << GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT |
|
||||
BRW_SF_URB_ENTRY_READ_OFFSET <<
|
||||
GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT);
|
||||
|
|
|
|||
|
|
@ -301,8 +301,15 @@ gen8_blorp_emit_sbe_state(struct brw_context *brw,
|
|||
const unsigned sbe_cmd_length = brw->gen == 8 ? 4 : 6;
|
||||
BEGIN_BATCH(sbe_cmd_length);
|
||||
OUT_BATCH(_3DSTATE_SBE << 16 | (sbe_cmd_length - 2));
|
||||
OUT_BATCH(GEN7_SBE_SWIZZLE_ENABLE |
|
||||
num_varyings << GEN7_SBE_NUM_OUTPUTS_SHIFT |
|
||||
|
||||
/* There is no need for swizzling (GEN7_SBE_SWIZZLE_ENABLE). All the
|
||||
* vertex data coming from vertex fetcher is taken as unmodified
|
||||
* (i.e., passed through). Vertex shader state is disabled and vertex
|
||||
* fetcher builds complete vertex entries including VUE header.
|
||||
* This is for unknown reason really needed to be disabled when more
|
||||
* than one vec4 worth of vertex attributes are needed.
|
||||
*/
|
||||
OUT_BATCH(num_varyings << GEN7_SBE_NUM_OUTPUTS_SHIFT |
|
||||
1 << GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT |
|
||||
BRW_SF_URB_ENTRY_READ_OFFSET <<
|
||||
GEN8_SBE_URB_ENTRY_READ_OFFSET_SHIFT |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue