mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 01:10:16 +01:00
r600: fix rv770 read scratch compatibility
The flag mega_fetch should be set on rv770 for a read scratch operation (as written in the r700 documentation p357). Without this flag, read scratch does not work and a gpu hang could be triggered. Here are the tests fixed: shaders/glsl-predication-on-large-array: fail pass spec/glsl-1.10/execution/temp-array-indexing/glsl-fs-giant-temp-array: fail pass spec/glsl-1.10/execution/temp-array-indexing/glsl-vs-giant-temp-array: fail pass spec/glsl-1.30/execution/fs-large-local-array: fail pass spec/glsl-1.30/execution/fs-large-local-array-vec2: fail pass spec/glsl-1.30/execution/fs-large-local-array-vec3: fail pass spec/glsl-1.30/execution/fs-large-local-array-vec4: fail pass spec/glsl-1.30/execution/fs-multiple-large-local-arrays: fail pass Fixes:9c48a139b0("r600g: Support emitting scratch ops") Signed-off-by: Patrick Lerda <patrick9876@free.fr> (cherry picked from commitf8de09a811) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
This commit is contained in:
parent
5238c8d029
commit
ddb166148b
4 changed files with 4 additions and 4 deletions
|
|
@ -124,7 +124,7 @@
|
|||
"description": "r600: fix rv770 read scratch compatibility",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "9c48a139b08f223f4ac6e218d19b356bf4a41463",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
spec@!opengl 3.2@gl-3.2-adj-prims pv-last
|
||||
spec@!opengl 3.2@layered-rendering@gl-layer-render-clipped
|
||||
spec@arb_fragment_layer_viewport@viewport-gs-write-simple
|
||||
spec@glsl-1.30@execution@fs-large-local-array-vec4
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ texelfetch@gs
|
|||
|
||||
# GPU hangs now
|
||||
variable-indexing@gs-in
|
||||
fs-multiple-large-local-arrays
|
||||
|
||||
# intermittent GL_OOMs, let's make sure that doesn't impact other tests.
|
||||
spec@!opengl 1.2@tex3d-maxsize
|
||||
|
|
|
|||
|
|
@ -139,7 +139,9 @@ int r700_bytecode_fetch_mem_build(struct r600_bytecode *bc, struct r600_bytecode
|
|||
|
||||
bc->bytecode[id++] = S_SQ_MEM_RD_WORD2_ARRAY_BASE(mem->array_base) |
|
||||
S_SQ_MEM_RD_WORD2_ENDIAN_SWAP(0) |
|
||||
S_SQ_MEM_RD_WORD2_ARRAY_SIZE(mem->array_size);
|
||||
S_SQ_MEM_RD_WORD2_ARRAY_SIZE(mem->array_size) |
|
||||
(bc->gfx_level == R700 && opcode == 0 ?
|
||||
S_SQ_VTX_WORD2_MEGA_FETCH(1) : 0);
|
||||
|
||||
|
||||
bc->bytecode[id++] = 0; /* MEM ops are 4 word aligned */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue