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

This commit is contained in:
Ethan Lee
2025-01-12 15:34:47 -05:00
committed by Sam Lantinga
parent 307dac97ac
commit 3df0767e34

View File

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