Post

Replies

Boosts

Views

Activity

Reply to Sampler works when debugged from frame capture but not on MTKView
Things I've tried so far: Calling waitUntilCompleted() on the command encoder does not change anything. Setting the shadow depth texture to compressed/non-compressed (using allowsGPUOptimizations) does not change anything. I've checked that the shadow depth texture has a MTLPurgeableState of .nonVolatile so it's not being discarded. Passing a fully 'white' (1.0) texture, which should always return true when sampled from the sample_compare with compare_func::less_equal. Same for a fully 'black' (0.0) texture, for what is worth... Here are the shadow depth texture settings, anyway, in case any of it helps: some : <CaptureMTLTexture: 0x600001b17e80> -> <AGXG13XFamilyTexture: 0x149e514c0>     label = Shadow Depth Texture      textureType = MTLTextureType2D      pixelFormat = MTLPixelFormatDepth32Float      width = 1024      height = 1024      depth = 1      arrayLength = 1      mipmapLevelCount = 1      sampleCount = 1      cpuCacheMode = MTLCPUCacheModeDefaultCache      storageMode = MTLStorageModePrivate      hazardTrackingMode = MTLHazardTrackingModeTracked      resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModePrivate MTLResourceHazardTrackingModeTracked       usage = MTLTextureUsageShaderRead MTLTextureUsageRenderTarget      shareable = 0      framebufferOnly = 0      purgeableState = MTLPurgeableStateNonVolatile      swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha]      isCompressed = 1      parentTexture = <null>      parentRelativeLevel = 0      parentRelativeSlice = 0      buffer = <null>      bufferOffset = 0      bufferBytesPerRow = 0      iosurface = 0x0      iosurfacePlane = 0      allowGPUOptimizedContents = YES     label = Shadow Depth Texture     label = Shadow Depth Texture Passing down a fully white texture makes the sampler work as expected on the GPU Frame Capture (the model is lit) but still keeps returning 0.0 on the real view (the whole model is unlit). Only exception, if the sample falls outside the texture, and the sampler is set to clamp_to_border with border_color::opaque_white. If I set it to clamp_to_edge, for example, samples outside the texture return 0.0 (unlit) too. So it's as if the texture was fully black on the real view, for some reason...
Dec ’21