mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-04 08:20:44 +02:00
nvc0: update the set of formats supported by the 2D engine
This commit is contained in:
parent
a3c62afa7c
commit
1b4c0c8ea0
1 changed files with 10 additions and 16 deletions
|
|
@ -33,25 +33,15 @@
|
|||
|
||||
#include "nv50_defs.xml.h"
|
||||
|
||||
#define NVC0_ENG2D_SUPPORTED_FORMATS 0xff9ccfe1cce3ccc9ULL
|
||||
|
||||
/* return TRUE for formats that can be converted among each other by NVC0_2D */
|
||||
static INLINE boolean
|
||||
nvc0_2d_format_faithful(enum pipe_format format)
|
||||
{
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_B8G8R8A8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
case PIPE_FORMAT_B8G8R8A8_SRGB:
|
||||
case PIPE_FORMAT_B8G8R8X8_SRGB:
|
||||
case PIPE_FORMAT_B5G6R5_UNORM:
|
||||
case PIPE_FORMAT_B5G5R5A1_UNORM:
|
||||
case PIPE_FORMAT_B10G10R10A2_UNORM:
|
||||
case PIPE_FORMAT_R8_UNORM:
|
||||
case PIPE_FORMAT_R32G32B32A32_FLOAT:
|
||||
case PIPE_FORMAT_R32G32B32_FLOAT:
|
||||
return TRUE;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
uint8_t id = nvc0_format_table[format].rt;
|
||||
|
||||
return (id >= 0xc0) && (NVC0_ENG2D_SUPPORTED_FORMATS & (1ULL << (id - 0xc0)));
|
||||
}
|
||||
|
||||
static INLINE uint8_t
|
||||
|
|
@ -62,7 +52,7 @@ nvc0_2d_format(enum pipe_format format)
|
|||
/* Hardware values for color formats range from 0xc0 to 0xff,
|
||||
* but the 2D engine doesn't support all of them.
|
||||
*/
|
||||
if ((id >= 0xc0) && (0xff0843e080608409ULL & (1ULL << (id - 0xc0))))
|
||||
if (nvc0_2d_format_faithful(format))
|
||||
return id;
|
||||
|
||||
switch (util_format_get_blocksize(format)) {
|
||||
|
|
@ -72,6 +62,10 @@ nvc0_2d_format(enum pipe_format format)
|
|||
return NV50_SURFACE_FORMAT_R16_UNORM;
|
||||
case 4:
|
||||
return NV50_SURFACE_FORMAT_A8R8G8B8_UNORM;
|
||||
case 8:
|
||||
return NV50_SURFACE_FORMAT_R16G16B16A16_UNORM;
|
||||
case 16:
|
||||
return NV50_SURFACE_FORMAT_R32G32B32A32_FLOAT;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue