[Mesa-dev] [PATCH 05/14] mesa/main/ff_frag: Don't bother with VARYING_BIT_FOGC.

Gustaw Smolarczyk wielkiegie at gmail.com
Tue May 16 17:08:04 UTC 2017


2017-05-16 18:48 GMT+02:00 Ian Romanick <idr at freedesktop.org>:
> On 05/15/2017 11:38 AM, Gustaw Smolarczyk wrote:
>> 2017-05-15 20:28 GMT+02:00 Ian Romanick <idr at freedesktop.org>:
>>> With this patch I applied, I still see this bit used in several
>>> places, including the i915 driver.  Did you test that?
>>>
>>> rc/compiler/shader_enums.h:#define VARYING_BIT_FOGC BITFIELD64_BIT(VARYING_SLOT_FOGC)
>>> src/mesa/swrast/s_context.c:                    VARYING_BIT_FOGC | VARYING_BITS_TEX_ANY;
>>> src/mesa/swrast/s_context.c:         attribsMask |= VARYING_BIT_FOGC;
>>> src/mesa/swrast/s_fog.c:if (span->arrayAttribs & VARYING_BIT_FOGC) {                                    \
>>> src/mesa/program/programopt.c: * This function sets \c VARYING_BIT_FOGC in \c fprog->info.inputs_read.
>>> src/mesa/program/programopt.c:   fprog->info.inputs_read |= VARYING_BIT_FOGC;
>>> src/mesa/main/ffvertex_prog.c:   if (p->state->fragprog_inputs_read & VARYING_BIT_FOGC)
>>> src/mesa/drivers/dri/i915/i915_fragprog.c:   if ((inputsRead & VARYING_BIT_FOGC)) {
>>> src/mesa/tnl/t_context.c:       || (fp != NULL && (fp->info.inputs_read & VARYING_BIT_FOGC) != 0)) {
>>
>> The bit would eventually end in the state_key::inputs_available bitset
>> which is only used locally (i.e. in the same source file). It was
>> never tested against.
>
> Okay.  As long as this inputs_referenced isn't used to populate the
> shader_info::inputs_read field in the generated fragment program it
> should be fine.
>
>> Regards,
>> Gustaw
>

That should not be a problem since only COL{0,1} and TEX* bits are
used. The bitmask is never used as a whole (other than copying it to
the state_key structure), so it shouldn't be accessed from outside of
ff_fragment_shader.cpp file.

Gustaw


More information about the mesa-dev mailing list