st/mesa: use proper resource target type in st_AllocTextureStorage()
authorBrian Paul <brianp@vmware.com>
Thu, 20 Jul 2017 16:51:45 +0000 (10:51 -0600)
committerBrian Paul <brianp@vmware.com>
Sat, 22 Jul 2017 19:18:56 +0000 (13:18 -0600)
When we validate the texture sample count, pass the correct
pipe_texture_target for the texture, rather than PIPE_TEXTURE_2D.

Also add more comments about MSAA.

No piglit regressions with VMware driver.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/mesa/state_tracker/st_cb_texture.c

index c6a5e63455305761cd9dfc7b62c788cf1b22f836..f66e1bd0cbe495710ad5d88e1f6f1944de6cb6d8 100644 (file)
@@ -2651,6 +2651,8 @@ st_finalize_texture(struct gl_context *ctx,
 /**
  * Called via ctx->Driver.AllocTextureStorage() to allocate texture memory
  * for a whole mipmap stack.
+ * Note: for multisample textures if the requested sample count is not
+ * supported, we search for the next higher supported sample count.
  */
 static GLboolean
 st_AllocTextureStorage(struct gl_context *ctx,
@@ -2679,10 +2681,11 @@ st_AllocTextureStorage(struct gl_context *ctx,
 
    /* Raise the sample count if the requested one is unsupported. */
    if (num_samples > 1) {
+      enum pipe_texture_target ptarget = gl_target_to_pipe(texObj->Target);
       boolean found = FALSE;
 
       for (; num_samples <= ctx->Const.MaxSamples; num_samples++) {
-         if (screen->is_format_supported(screen, fmt, PIPE_TEXTURE_2D,
+         if (screen->is_format_supported(screen, fmt, ptarget,
                                          num_samples,
                                          PIPE_BIND_SAMPLER_VIEW)) {
             /* Update the sample count in gl_texture_image as well. */