svga: Force an RGBA view creation for an RGBA resource
glXCreatePixmap() may specify a GLX_TEXTURE_FORMAT_RGB_EXT format for an RGBA resource, causing us to create an RGBX view for an RGBA resource, a combination vgpu10 does not support. When this is detected, change the request to create an RGBA view instead. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
8366701f4c
commit
f1410c5b91
|
@ -103,8 +103,17 @@ svga_validate_pipe_sampler_view(struct svga_context *svga,
|
|||
SVGA3dSurfaceFormat format;
|
||||
SVGA3dResourceType resourceDim;
|
||||
SVGA3dShaderResourceViewDesc viewDesc;
|
||||
enum pipe_format pformat = sv->base.format;
|
||||
|
||||
format = svga_translate_format(ss, sv->base.format,
|
||||
/* vgpu10 cannot create a BGRX view for a BGRA resource, so force it to
|
||||
* create a BGRA view.
|
||||
*/
|
||||
if (pformat == PIPE_FORMAT_B8G8R8X8_UNORM &&
|
||||
sv->base.texture->format == PIPE_FORMAT_B8G8R8A8_UNORM) {
|
||||
pformat = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
}
|
||||
|
||||
format = svga_translate_format(ss, pformat,
|
||||
PIPE_BIND_SAMPLER_VIEW);
|
||||
assert(format != SVGA3D_FORMAT_INVALID);
|
||||
|
||||
|
|
Loading…
Reference in New Issue