Bladeren bron

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

Ethan Lee 7 maanden geleden
bovenliggende
commit
3df0767e34
1 gewijzigde bestanden met toevoegingen van 3 en 2 verwijderingen
  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];