OSDN Git Service

Revert "mesa/main: Fix multisample texture initialize"
authorIllia Iorin <illia.iorin@globallogic.com>
Mon, 22 Jul 2019 14:07:39 +0000 (17:07 +0300)
committerDanylo Piliaiev <danylo.piliaiev@gmail.com>
Fri, 25 Oct 2019 21:16:23 +0000 (21:16 +0000)
This reverts commit a113a42e7369a4e43a1db1c9a7a35a3f7175615e.

Per https://github.com/KhronosGroup/OpenGL-API/issues/45 it
was a wrong way to fix the issue.

Signed-off-by: Illia Iorin <illia.iorin@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/texobj.c

index 5c57266..0f12445 100644 (file)
@@ -308,8 +308,6 @@ _mesa_initialize_texture_object( struct gl_context *ctx,
           target == GL_TEXTURE_2D_MULTISAMPLE ||
           target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY);
 
-   GLenum filter = GL_LINEAR;
-
    memset(obj, 0, sizeof(*obj));
    /* init the non-zero fields */
    simple_mtx_init(&obj->Mutex, mtx_plain);
@@ -330,30 +328,20 @@ _mesa_initialize_texture_object( struct gl_context *ctx,
    obj->RequiredTextureImageUnits = 1;
 
    /* sampler state */
-   switch (target) {
-      case GL_TEXTURE_2D_MULTISAMPLE:
-      case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
-         filter = GL_NEAREST;
-         /* fallthrough */
-
-      case GL_TEXTURE_RECTANGLE_NV:
-      case GL_TEXTURE_EXTERNAL_OES:
-         obj->Sampler.WrapS = GL_CLAMP_TO_EDGE;
-         obj->Sampler.WrapT = GL_CLAMP_TO_EDGE;
-         obj->Sampler.WrapR = GL_CLAMP_TO_EDGE;
-         obj->Sampler.MinFilter = filter;
-         obj->Sampler.MagFilter = filter;
-         break;
-
-      default:
-         obj->Sampler.WrapS = GL_REPEAT;
-         obj->Sampler.WrapT = GL_REPEAT;
-         obj->Sampler.WrapR = GL_REPEAT;
-         obj->Sampler.MinFilter = GL_NEAREST_MIPMAP_LINEAR;
-         obj->Sampler.MagFilter = GL_LINEAR;
-         break;
+   if (target == GL_TEXTURE_RECTANGLE_NV ||
+       target == GL_TEXTURE_EXTERNAL_OES) {
+      obj->Sampler.WrapS = GL_CLAMP_TO_EDGE;
+      obj->Sampler.WrapT = GL_CLAMP_TO_EDGE;
+      obj->Sampler.WrapR = GL_CLAMP_TO_EDGE;
+      obj->Sampler.MinFilter = GL_LINEAR;
    }
-
+   else {
+      obj->Sampler.WrapS = GL_REPEAT;
+      obj->Sampler.WrapT = GL_REPEAT;
+      obj->Sampler.WrapR = GL_REPEAT;
+      obj->Sampler.MinFilter = GL_NEAREST_MIPMAP_LINEAR;
+   }
+   obj->Sampler.MagFilter = GL_LINEAR;
    obj->Sampler.MinLod = -1000.0;
    obj->Sampler.MaxLod = 1000.0;
    obj->Sampler.LodBias = 0.0;