Merge pull request #1071 from cdavis5e/render-area-size-min

Ensure there is at least one pixel in the render area.
This commit is contained in:
Bill Hollings 2020-09-24 17:50:09 -04:00 committed by GitHub
commit 6588ac8fd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -338,8 +338,8 @@ void MVKCommandEncoder::beginMetalRenderPass(bool loadOverride) {
mtlRPDesc.visibilityResultBuffer = _occlusionQueryState.getVisibilityResultMTLBuffer(); mtlRPDesc.visibilityResultBuffer = _occlusionQueryState.getVisibilityResultMTLBuffer();
VkExtent2D fbExtent = _framebuffer->getExtent2D(); VkExtent2D fbExtent = _framebuffer->getExtent2D();
mtlRPDesc.renderTargetWidthMVK = min(_renderArea.offset.x + _renderArea.extent.width, fbExtent.width); mtlRPDesc.renderTargetWidthMVK = max(min(_renderArea.offset.x + _renderArea.extent.width, fbExtent.width), 1u);
mtlRPDesc.renderTargetHeightMVK = min(_renderArea.offset.y + _renderArea.extent.height, fbExtent.height); mtlRPDesc.renderTargetHeightMVK = max(min(_renderArea.offset.y + _renderArea.extent.height, fbExtent.height), 1u);
if (_canUseLayeredRendering) { if (_canUseLayeredRendering) {
if (getSubpass()->isMultiview()) { if (getSubpass()->isMultiview()) {
// In the case of a multiview pass, the framebuffer layer count will be one. // In the case of a multiview pass, the framebuffer layer count will be one.