aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/state_tracker/st_format.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-01-28 07:58:44 +0100
committermarha <marha@users.sourceforge.net>2013-01-28 07:58:44 +0100
commit39b49babc915183f4d712053b46f0e010427c191 (patch)
treeb512cf3f17a0defe9e2cd6ababdc9f5337f93d0e /mesalib/src/mesa/state_tracker/st_format.c
parent3e3af07f7697e9d23dd62fcf8f3a055602ae3341 (diff)
parent69c8cec54b01ed522bf10baf20da70304bac701a (diff)
downloadvcxsrv-39b49babc915183f4d712053b46f0e010427c191.tar.gz
vcxsrv-39b49babc915183f4d712053b46f0e010427c191.tar.bz2
vcxsrv-39b49babc915183f4d712053b46f0e010427c191.zip
Merge remote-tracking branch 'origin/released'
* origin/released: mesa mkfontscale pixman git update 28 jan 2013
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_format.c')
-rw-r--r--mesalib/src/mesa/state_tracker/st_format.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_format.c b/mesalib/src/mesa/state_tracker/st_format.c
index af81f732d..7ef063953 100644
--- a/mesalib/src/mesa/state_tracker/st_format.c
+++ b/mesalib/src/mesa/state_tracker/st_format.c
@@ -1642,6 +1642,40 @@ st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
}
+/**
+ * Called via ctx->Driver.ChooseTextureFormat().
+ */
+size_t
+st_QuerySamplesForFormat(struct gl_context *ctx, GLenum internalFormat,
+ int samples[16])
+{
+ struct pipe_screen *screen = st_context(ctx)->pipe->screen;
+ enum pipe_format format;
+ unsigned i, bind, num_sample_counts = 0;
+
+ if (_mesa_is_depth_or_stencil_format(internalFormat))
+ bind = PIPE_BIND_DEPTH_STENCIL;
+ else
+ bind = PIPE_BIND_RENDER_TARGET;
+
+ /* Set sample counts in descending order. */
+ for (i = 16; i > 1; i--) {
+ format = st_choose_format(screen, internalFormat, GL_NONE, GL_NONE,
+ PIPE_TEXTURE_2D, i, bind);
+
+ if (format != PIPE_FORMAT_NONE) {
+ samples[num_sample_counts++] = i;
+ }
+ }
+
+ if (!num_sample_counts) {
+ samples[num_sample_counts++] = 1;
+ }
+
+ return num_sample_counts;
+}
+
+
GLboolean
st_sampler_compat_formats(enum pipe_format format1, enum pipe_format format2)
{