[Bf-blender-cvs] [7ff47f7a944] master: Metal: Add missing MIP_SWIZZLE texture usage flags. Fix compilation warnings.

Jason Fielder noreply at git.blender.org
Wed Dec 21 14:08:32 CET 2022


Commit: 7ff47f7a944cb3107af127cf0545d3c0f04b3555
Author: Jason Fielder
Date:   Wed Dec 21 14:07:19 2022 +0100
Branches: master
https://developer.blender.org/rB7ff47f7a944cb3107af127cf0545d3c0f04b3555

Metal: Add missing MIP_SWIZZLE texture usage flags. Fix compilation warnings.

Authored by Apple: Michael Parkin-White

Ref T96261

Maniphest Tasks: T96261

Differential Revision: https://developer.blender.org/D16824

===================================================================

M	source/blender/draw/intern/draw_cache_impl_volume.cc
M	source/blender/draw/intern/draw_fluid.c
M	source/blender/editors/sculpt_paint/paint_cursor.cc
M	source/blender/gpu/metal/mtl_context.hh
M	source/blender/windowmanager/intern/wm_operators.c

===================================================================

diff --git a/source/blender/draw/intern/draw_cache_impl_volume.cc b/source/blender/draw/intern/draw_cache_impl_volume.cc
index b22831bf94b..dd89e84ed71 100644
--- a/source/blender/draw/intern/draw_cache_impl_volume.cc
+++ b/source/blender/draw/intern/draw_cache_impl_volume.cc
@@ -312,7 +312,8 @@ static DRWVolumeGrid *volume_grid_cache_get(const Volume *volume,
                                                    1,
                                                    format,
                                                    GPU_DATA_FLOAT,
-                                                   GPU_TEXTURE_USAGE_SHADER_READ,
+                                                   GPU_TEXTURE_USAGE_SHADER_READ |
+                                                       GPU_TEXTURE_USAGE_MIP_SWIZZLE_VIEW,
                                                    dense_grid.voxels);
     /* The texture can be null if the resolution along one axis is larger than
      * GL_MAX_3D_TEXTURE_SIZE. */
diff --git a/source/blender/draw/intern/draw_fluid.c b/source/blender/draw/intern/draw_fluid.c
index 8975e955530..8fbdb7eec13 100644
--- a/source/blender/draw/intern/draw_fluid.c
+++ b/source/blender/draw/intern/draw_fluid.c
@@ -184,7 +184,8 @@ static GPUTexture *create_volume_texture(const int dim[3],
                                    1,
                                    texture_format,
                                    data_format,
-                                   GPU_TEXTURE_USAGE_SHADER_READ,
+                                   GPU_TEXTURE_USAGE_SHADER_READ |
+                                       GPU_TEXTURE_USAGE_MIP_SWIZZLE_VIEW,
                                    NULL);
 
     if (tex != NULL) {
diff --git a/source/blender/editors/sculpt_paint/paint_cursor.cc b/source/blender/editors/sculpt_paint/paint_cursor.cc
index d3cea0e5573..43e59aaf4f7 100644
--- a/source/blender/editors/sculpt_paint/paint_cursor.cc
+++ b/source/blender/editors/sculpt_paint/paint_cursor.cc
@@ -334,7 +334,8 @@ static int load_tex(Brush *br, ViewContext *vc, float zoom, bool col, bool prima
 
     if (!target->overlay_texture) {
       eGPUTextureFormat format = col ? GPU_RGBA8 : GPU_R8;
-      eGPUTextureUsage usage = GPU_TEXTURE_USAGE_SHADER_READ | GPU_TEXTURE_USAGE_ATTACHMENT;
+      eGPUTextureUsage usage = GPU_TEXTURE_USAGE_SHADER_READ | GPU_TEXTURE_USAGE_ATTACHMENT |
+                               GPU_TEXTURE_USAGE_MIP_SWIZZLE_VIEW;
       target->overlay_texture = GPU_texture_create_2d_ex(
           "paint_cursor_overlay", size, size, 1, format, usage, nullptr);
       GPU_texture_update(target->overlay_texture, GPU_DATA_UBYTE, buffer);
@@ -453,7 +454,8 @@ static int load_tex_cursor(Brush *br, ViewContext *vc, float zoom)
     BLI_task_parallel_range(0, size, &data, load_tex_cursor_task_cb, &settings);
 
     if (!cursor_snap.overlay_texture) {
-      eGPUTextureUsage usage = GPU_TEXTURE_USAGE_SHADER_READ | GPU_TEXTURE_USAGE_ATTACHMENT;
+      eGPUTextureUsage usage = GPU_TEXTURE_USAGE_SHADER_READ | GPU_TEXTURE_USAGE_ATTACHMENT |
+                               GPU_TEXTURE_USAGE_MIP_SWIZZLE_VIEW;
       cursor_snap.overlay_texture = GPU_texture_create_2d_ex(
           "cursor_snap_overaly", size, size, 1, GPU_R8, usage, nullptr);
       GPU_texture_update(cursor_snap.overlay_texture, GPU_DATA_UBYTE, buffer);
diff --git a/source/blender/gpu/metal/mtl_context.hh b/source/blender/gpu/metal/mtl_context.hh
index a26e31aadde..e2789dbf9a7 100644
--- a/source/blender/gpu/metal/mtl_context.hh
+++ b/source/blender/gpu/metal/mtl_context.hh
@@ -658,7 +658,7 @@ class MTLContext : public Context {
 
   /** Dummy Resources */
   /* Maximum of 32 texture types. Though most combinations invalid. */
-  gpu::MTLTexture *dummy_textures_[GPU_SAMPLER_TYPE_MAX][GPU_TEXTURE_BUFFER] = {nullptr};
+  gpu::MTLTexture *dummy_textures_[GPU_SAMPLER_TYPE_MAX][GPU_TEXTURE_BUFFER] = {{nullptr}};
   GPUVertFormat dummy_vertformat_[GPU_SAMPLER_TYPE_MAX];
   GPUVertBuf *dummy_verts_[GPU_SAMPLER_TYPE_MAX] = {nullptr};
 
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 8fbf528b8bb..f43b6722550 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -2300,7 +2300,8 @@ static void radial_control_set_tex(RadialControl *rc)
                                                ibuf->y,
                                                1,
                                                GPU_R8,
-                                               GPU_TEXTURE_USAGE_SHADER_READ,
+                                               GPU_TEXTURE_USAGE_SHADER_READ |
+                                                   GPU_TEXTURE_USAGE_MIP_SWIZZLE_VIEW,
                                                ibuf->rect_float);
 
         GPU_texture_filter_mode(rc->texture, true);



More information about the Bf-blender-cvs mailing list