[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