Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 48520e8acaa0a169267b7e63a4a7f02e6f2c68a3 https://github.com/WebKit/WebKit/commit/48520e8acaa0a169267b7e63a4a7f02e6f2c68a3 Author: Mike Wyrzykowski <mwyrzykow...@apple.com> Date: 2023-11-09 (Thu, 09 Nov 2023)
Changed paths: M Source/WebGPU/WebGPU/BindGroupLayout.mm M Source/WebGPU/WebGPU/Queue.h M Source/WebGPU/WebGPU/Queue.mm M Source/WebGPU/WebGPU/RenderBundle.h M Source/WebGPU/WebGPU/RenderBundle.mm M Source/WebGPU/WebGPU/RenderBundleEncoder.h M Source/WebGPU/WebGPU/RenderBundleEncoder.mm M Source/WebGPU/WebGPU/RenderPassEncoder.h M Source/WebGPU/WebGPU/RenderPassEncoder.mm M Source/WebGPU/WebGPU/ShaderModule.mm Log Message: ----------- [WebGPU] Pipeline needs to pass zNear and zFar to fragment shader for clamping depth writes https://bugs.webkit.org/show_bug.cgi?id=264436 <radar://118138930> Reviewed by Tadeu Zagallo. WebGPU expects writes to frag_depth to be clipped to the viewport bounds which is not something which natively exists in Metal, so we need to pass the viewport bounds to the fragment shader so the shader can clamp. * Source/WebGPU/WebGPU/Queue.h: * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::writeBuffer): * Source/WebGPU/WebGPU/RenderBundle.h: * Source/WebGPU/WebGPU/RenderBundle.mm: (WebGPU::RenderBundle::updateMinMaxDepths): * Source/WebGPU/WebGPU/RenderBundleEncoder.h: * Source/WebGPU/WebGPU/RenderBundleEncoder.mm: (-[RenderBundleICBWithResources initWithICB:pipelineState:depthStencilState:cullMode:frontFace:depthClipMode:depthBias:depthBiasSlopeScale:depthBiasClamp:fragmentDynamicOffsetsBuffer:]): (WebGPU::makeRenderBundleICBWithResources): (WebGPU::Device::createRenderBundleEncoder): (WebGPU::RenderBundleEncoder::executePreDrawCommands): (WebGPU::RenderBundleEncoder::endCurrentICB): (WebGPU::RenderBundleEncoder::setBindGroup): (-[RenderBundleICBWithResources initWithICB:pipelineState:depthStencilState:cullMode:frontFace:depthClipMode:depthBias:depthBiasSlopeScale:depthBiasClamp:]): Deleted. * Source/WebGPU/WebGPU/RenderPassEncoder.h: * Source/WebGPU/WebGPU/RenderPassEncoder.mm: (WebGPU::setViewportMinMaxDepthIntoBuffer): (WebGPU::RenderPassEncoder::executePreDrawCommands): (WebGPU::RenderPassEncoder::executeBundles): (WebGPU::RenderPassEncoder::setPipeline): (WebGPU::RenderPassEncoder::setViewport): (wgpuRenderPassEncoderExecuteBundles): Canonical link: https://commits.webkit.org/270469@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes