فهرست منبع

gpu: Initialize Metal stencil format even if stencil test is disabled

Ethan Lee 3 ماه پیش
والد
کامیت
3df0767e34
1فایلهای تغییر یافته به همراه3 افزوده شده و 2 حذف شده
  1. 3 2
      src/gpu/metal/SDL_gpu_metal.m

+ 3 - 2
src/gpu/metal/SDL_gpu_metal.m

@@ -1121,10 +1121,11 @@ static SDL_GPUGraphicsPipeline *METAL_CreateGraphicsPipeline(
 
         if (createinfo->target_info.has_depth_stencil_target) {
             pipelineDescriptor.depthAttachmentPixelFormat = SDLToMetal_TextureFormat(createinfo->target_info.depth_stencil_format);
-
-            if (createinfo->depth_stencil_state.enable_stencil_test) {
+            if (IsStencilFormat(createinfo->target_info.depth_stencil_format)) {
                 pipelineDescriptor.stencilAttachmentPixelFormat = SDLToMetal_TextureFormat(createinfo->target_info.depth_stencil_format);
+            }
 
+            if (createinfo->depth_stencil_state.enable_stencil_test) {
                 frontStencilDescriptor = [MTLStencilDescriptor new];
                 frontStencilDescriptor.stencilCompareFunction = SDLToMetal_CompareOp[createinfo->depth_stencil_state.front_stencil_state.compare_op];
                 frontStencilDescriptor.stencilFailureOperation = SDLToMetal_StencilOp[createinfo->depth_stencil_state.front_stencil_state.fail_op];