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

Reply via email to