[Mesa-dev] [PATCH 1/2] st/mesa: fix samplerCubeShadow with bias

Ilia Mirkin imirkin at alum.mit.edu
Fri Jul 4 12:30:25 PDT 2014


On Fri, Jul 4, 2014 at 2:49 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Fri, Jul 4, 2014 at 8:10 AM, Marek Olšák <maraeo at gmail.com> wrote:
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> It has 5 coordinates: (x,y,z,depth,lodbias)
>>
>> Cc: mesa-stable at lists.freedesktop.org
>
> Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
>
> Although I still haven't worked out what else is wrong with nouveau...
> nv50 hits an assert, while nvc0 just generates wrong code. But it does
> look like your patch is correct.

Actually this makes the TXL2 instruction pretty confusing =/

Right now it's always just used for cube arrays, so the shadow/lod are
in a fixed position (first and second components of second arg). I
think that behaviour should be maintained -- for example, TXB
(http://gallium.readthedocs.org/en/latest/tgsi.html#opcode-TXB) always
has the bias in the 'w' component [ugh, should fix the docs on that,
it says 'z']. Same with TXL.

  -ilia

>
>> ---
>>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 8 +++++++-
>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> index 9e19431..65ef89c 100644
>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> @@ -2820,7 +2820,13 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
>>        }
>>        break;
>>     case ir_txb:
>> -      opcode = is_cube_array ? TGSI_OPCODE_TXB2 : TGSI_OPCODE_TXB;
>> +      if (is_cube_array ||
>> +          sampler_type == glsl_type::samplerCubeShadow_type) {
>> +         opcode = TGSI_OPCODE_TXB2;
>> +      }
>> +      else {
>> +         opcode = TGSI_OPCODE_TXB;
>> +      }
>>        ir->lod_info.bias->accept(this);
>>        lod_info = this->result;
>>        if (ir->offset) {
>> --
>> 1.9.1
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list