[webkit-changes] [WebKit/WebKit] 48520e: [WebGPU] Pipeline needs to pass zNear and zFar to ...
mwyrzykowski
noreply at github.com
Thu Nov 9 12:23:45 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 48520e8acaa0a169267b7e63a4a7f02e6f2c68a3
https://github.com/WebKit/WebKit/commit/48520e8acaa0a169267b7e63a4a7f02e6f2c68a3
Author: Mike Wyrzykowski <mwyrzykowski at 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
More information about the webkit-changes
mailing list