mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-01 05:58:05 +02:00
i965/skl: Fix the order of the arguments for the LD sampler message
In Skylake the order of the arguments for sample messages with the LD type are u, v, lod, r whereas previously they were u, lod, v, r. This fixes 144 Piglit tests including ones that directly use texelFetch and also some using the meta stencil blit path which appears to use texelFetch in its shader. v2: Fix sampling 1D textures Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
parent
eb51c6d55f
commit
4deca1274c
1 changed files with 13 additions and 2 deletions
|
|
@ -1889,15 +1889,26 @@ fs_visitor::emit_texture_gen7(ir_texture_opcode op, fs_reg dst,
|
|||
length++;
|
||||
break;
|
||||
case ir_txf:
|
||||
/* Unfortunately, the parameters for LD are intermixed: u, lod, v, r. */
|
||||
/* Unfortunately, the parameters for LD are intermixed: u, lod, v, r.
|
||||
* On Gen9 they are u, v, lod, r
|
||||
*/
|
||||
|
||||
emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), coordinate));
|
||||
coordinate = offset(coordinate, 1);
|
||||
length++;
|
||||
|
||||
if (brw->gen >= 9) {
|
||||
if (coord_components >= 2) {
|
||||
emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), coordinate));
|
||||
coordinate = offset(coordinate, 1);
|
||||
}
|
||||
length++;
|
||||
}
|
||||
|
||||
emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), lod));
|
||||
length++;
|
||||
|
||||
for (int i = 1; i < coord_components; i++) {
|
||||
for (int i = brw->gen >= 9 ? 2 : 1; i < coord_components; i++) {
|
||||
emit(MOV(retype(sources[length], BRW_REGISTER_TYPE_D), coordinate));
|
||||
coordinate = offset(coordinate, 1);
|
||||
length++;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue