[Mesa-dev] [PATCH 1/5] st/formats: split choose format into non-erroring internal version
Dave Airlie
airlied at gmail.com
Wed Apr 10 21:17:48 PDT 2013
From: Dave Airlie <airlied at redhat.com>
This allows us to reuse this for choosing formats for MSAA limits.
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
src/mesa/state_tracker/st_format.c | 24 +++++++++++++++++++-----
src/mesa/state_tracker/st_format.h | 5 +++++
2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index c9c6163..ee72bda 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -1614,10 +1614,10 @@ find_exact_format(GLint internalFormat, GLenum format, GLenum type)
* when we're getting called from gl[Copy]TexImage().
*/
enum pipe_format
-st_choose_format(struct st_context *st, GLenum internalFormat,
- GLenum format, GLenum type,
- enum pipe_texture_target target, unsigned sample_count,
- unsigned bindings, boolean allow_dxt)
+st_choose_format_internal(struct st_context *st, GLenum internalFormat,
+ GLenum format, GLenum type,
+ enum pipe_texture_target target, unsigned sample_count,
+ unsigned bindings, boolean allow_dxt)
{
struct pipe_screen *screen = st->pipe->screen;
int i, j;
@@ -1651,10 +1651,24 @@ st_choose_format(struct st_context *st, GLenum internalFormat,
}
}
- _mesa_problem(NULL, "unhandled format!\n");
return PIPE_FORMAT_NONE;
}
+enum pipe_format
+st_choose_format(struct st_context *st, GLenum internalFormat,
+ GLenum format, GLenum type,
+ enum pipe_texture_target target, unsigned sample_count,
+ unsigned bindings, boolean allow_dxt)
+{
+ enum pipe_format pformat;
+
+ pformat = st_choose_format_internal(st, internalFormat, format, type,
+ target, sample_count, bindings,
+ allow_dxt);
+ if (pformat == PIPE_FORMAT_NONE)
+ _mesa_problem(NULL, "unhandled format!\n");
+ return pformat;
+}
/**
* Called by FBO code to choose a PIPE_FORMAT_ for drawing surfaces.
diff --git a/src/mesa/state_tracker/st_format.h b/src/mesa/state_tracker/st_format.h
index 0a1c18d..9f1d4ef 100644
--- a/src/mesa/state_tracker/st_format.h
+++ b/src/mesa/state_tracker/st_format.h
@@ -46,6 +46,11 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat);
extern gl_format
st_pipe_format_to_mesa_format(enum pipe_format pipeFormat);
+extern enum pipe_format
+st_choose_format_internal(struct st_context *st, GLenum internalFormat,
+ GLenum format, GLenum type,
+ enum pipe_texture_target target, unsigned sample_count,
+ unsigned bindings, boolean allow_dxt);
extern enum pipe_format
st_choose_format(struct st_context *st, GLenum internalFormat,
--
1.8.2
More information about the mesa-dev
mailing list