svga: use untyped surface formats in most cases
This allows us to do copies between different, but compatible, surface formats such as RGBA8_UNORM, RGBA8_SINT, RGBA8_UINT, etc. for GL_ARB_copy_image. Acked-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
parent
5f1335878e
commit
eb0ced74f6
|
@ -945,14 +945,17 @@ svga_texture_create(struct pipe_screen *screen,
|
|||
goto fail;
|
||||
}
|
||||
|
||||
/* Use typeless formats for sRGB and depth resources. Typeless
|
||||
/* The actual allocation is done with a typeless format. Typeless
|
||||
* formats can be reinterpreted as other formats. For example,
|
||||
* SVGA3D_R8G8B8A8_UNORM_TYPELESS can be interpreted as
|
||||
* SVGA3D_R8G8B8A8_UNORM_SRGB or SVGA3D_R8G8B8A8_UNORM.
|
||||
* Do not use typeless formats for SHARED, DISPLAY_TARGET or SCANOUT
|
||||
* buffers.
|
||||
*/
|
||||
if (svgascreen->sws->have_vgpu10 &&
|
||||
(util_format_is_srgb(template->format) ||
|
||||
format_has_depth(template->format))) {
|
||||
if (svgascreen->sws->have_vgpu10
|
||||
&& ((bindings & (PIPE_BIND_SHARED |
|
||||
PIPE_BIND_DISPLAY_TARGET |
|
||||
PIPE_BIND_SCANOUT)) == 0)) {
|
||||
SVGA3dSurfaceFormat typeless = svga_typeless_format(tex->key.format);
|
||||
if (0) {
|
||||
debug_printf("Convert resource type %s -> %s (bind 0x%x)\n",
|
||||
|
|
Loading…
Reference in New Issue