In r*00SetTexBuffer2(), if the passed in text glx_texture_format
is GLX_TEXTURE_FORMAT_RGB_EXT, then we should use an RGB-only
texture format, even if the DRI buffer has four channels.
https://bugs.freedesktop.org/show_bug.cgi?id=21609
pitch_val = rb->pitch;
switch (rb->cpp) {
case 4:
- t->pp_txformat = tx_table_le[MESA_FORMAT_ARGB8888].format;
+ if (glx_texture_format == GLX_TEXTURE_FORMAT_RGB_EXT)
+ t->pp_txformat = tx_table_le[MESA_FORMAT_RGB888].format;
+ else
+ t->pp_txformat = tx_table_le[MESA_FORMAT_ARGB8888].format;
t->pp_txfilter |= tx_table_le[MESA_FORMAT_ARGB8888].filter;
break;
case 3:
pitch_val = rb->pitch;
switch (rb->cpp) {
case 4:
- t->pp_txformat = tx_table[MESA_FORMAT_ARGB8888].format;
+ if (glx_texture_format == GLX_TEXTURE_FORMAT_RGB_EXT)
+ t->pp_txformat = tx_table[MESA_FORMAT_RGB888].format;
+ else
+ t->pp_txformat = tx_table[MESA_FORMAT_ARGB8888].format;
t->pp_txfilter |= tx_table[MESA_FORMAT_ARGB8888].filter;
break;
case 3: