Merge pull request #274 from cdavis5e/render-target-size

vkRenderPass: Set renderTargetWidth and renderTargetHeight when possible.
This commit is contained in:
Bill Hollings 2018-09-25 10:47:48 -04:00 committed by GitHub
commit 21cb79df09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 62 additions and 0 deletions

View File

@ -257,6 +257,8 @@ void MVKCommandEncoder::beginMetalRenderPass() {
getSubpass()->populateMTLRenderPassDescriptor(mtlRPDesc, _framebuffer, _clearValues, _isRenderingEntireAttachment);
mtlRPDesc.visibilityResultBuffer = _occlusionQueryState.getVisibilityResultMTLBuffer();
mtlRPDesc.renderTargetArrayLengthMVK = _framebuffer->getLayerCount();
mtlRPDesc.renderTargetWidthMVK = _framebuffer->getExtent2D().width;
mtlRPDesc.renderTargetHeightMVK = _framebuffer->getExtent2D().height;
_mtlRenderEncoder = [_mtlCmdBuffer renderCommandEncoderWithDescriptor: mtlRPDesc]; // not retained
_mtlRenderEncoder.label = getMTLRenderCommandEncoderName();

View File

@ -31,4 +31,20 @@
*/
@property(nonatomic, readwrite) NSUInteger renderTargetArrayLengthMVK;
/**
* Replacement for the renderTargetWidth property.
*
* This property allows support under all OS versions. Delegates to the renderTargetWidth
* property if it is available. otherwise, returns 0 when read and does nothing when set.
*/
@property(nonatomic, readwrite) NSUInteger renderTargetWidthMVK;
/**
* Replacement for the renderTargetHeight property.
*
* This property allows support under all OS versions. Delegates to the renderTargetHeight
* property if it is available. otherwise, returns 0 when read and does nothing when set.
*/
@property(nonatomic, readwrite) NSUInteger renderTargetHeightMVK;
@end

View File

@ -41,4 +41,48 @@
}
-(NSUInteger) renderTargetWidthMVK {
#if MVK_MACOS
return 0;
#endif
#if MVK_IOS
if ([self respondsToSelector: @selector(renderTargetWidth)])
return self.renderTargetWidth;
return 0;
#endif
}
-(void) setRenderTargetWidthMVK: (NSUInteger) width {
#if MVK_IOS
if ([self respondsToSelector: @selector(setRenderTargetWidth:)])
self.renderTargetWidth = width;
#endif
}
-(NSUInteger) renderTargetHeightMVK {
#if MVK_MACOS
return 0;
#endif
#if MVK_IOS
if ([self respondsToSelector: @selector(renderTargetHeight)])
return self.renderTargetHeight;
return 0;
#endif
}
-(void) setRenderTargetHeightMVK: (NSUInteger) height {
#if MVK_IOS
if ([self respondsToSelector: @selector(setRenderTargetHeight:)])
self.renderTargetHeight = height;
#endif
}
@end