Mesa (master): st/mesa: allow R8 to not be exposed as renderable by driver
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Jul 5 04:46:47 UTC 2020
Module: Mesa
Branch: master
Commit: ef11d5fc8bb7be56d6afa3f980323cf082ee5c16
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef11d5fc8bb7be56d6afa3f980323cf082ee5c16
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date: Mon May 18 14:00:58 2020 -0400
st/mesa: allow R8 to not be exposed as renderable by driver
A3xx GPUs support RG8 and RGBA8, but not R8 for rendering. Add RG8 as
fallbacks for integer formats, and require a renderable format to be
picked for all R8 variants.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5748>
---
src/mesa/state_tracker/st_format.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 22da741472a..c84dd7b324d 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -910,7 +910,7 @@ static const struct format_mapping format_map[] = {
},
{
{ GL_R8I, GL_RED_INTEGER_EXT, 0},
- { PIPE_FORMAT_R8_SINT, 0},
+ { PIPE_FORMAT_R8_SINT, PIPE_FORMAT_R8G8_SINT, 0},
},
{
{ GL_R16I, 0},
@@ -922,7 +922,7 @@ static const struct format_mapping format_map[] = {
},
{
{ GL_R8UI, 0},
- { PIPE_FORMAT_R8_UINT, 0},
+ { PIPE_FORMAT_R8_UINT, PIPE_FORMAT_R8G8_UINT, 0},
},
{
{ GL_R16UI, 0},
@@ -1281,7 +1281,11 @@ st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
internalFormat == GL_RGB16F ||
internalFormat == GL_RGBA16F ||
internalFormat == GL_RGB32F ||
- internalFormat == GL_RGBA32F)
+ internalFormat == GL_RGBA32F ||
+ internalFormat == GL_RED ||
+ internalFormat == GL_RED_SNORM ||
+ internalFormat == GL_R8I ||
+ internalFormat == GL_R8UI)
bindings |= PIPE_BIND_RENDER_TARGET;
/* GLES allows the driver to choose any format which matches
More information about the mesa-commit
mailing list