I updated my MBP 16" into macOS 12 beta and downloaded Xcode 13 & hybrid rendering sample. (https://developer.apple.com/documentation/metal/rendering_reflections_in_real_time_using_ray-tracing?language=objc)
I run the sample but Xcode tells me GPU timeout has been occurred.
2021-06-10 01:50:53.303115+0900 HybridRendering[2259:105212] Execution of the command buffer was aborted due to an error during execution. Caused GPU Timeout Error (00000002:kIOAccelCommandBufferCallbackErrorTimeout)
2021-06-10 01:50:53.303324+0900 HybridRendering[2259:105212] Execution of the command buffer was aborted due to an error during execution. Caused GPU Timeout Error (00000002:kIOAccelCommandBufferCallbackErrorTimeout)
Error Domain=MTLCommandBufferErrorDomain Code=2 "Caused GPU Timeout Error (00000002:kIOAccelCommandBufferCallbackErrorTimeout)" UserInfo={NSLocalizedDescription=Caused GPU Timeout Error (00000002:kIOAccelCommandBufferCallbackErrorTimeout), MTLCommandBufferEncoderInfoErrorKey=(
"<errorState: MTLCommandEncoderErrorStateCompleted, label: ThinGBufferRenderEncoder, debugSignposts: (null)>",
"<errorState: MTLCommandEncoderErrorStateAffected, label: RaytracedReflectionsComputeEncoder, debugSignposts: (null)>",
"<errorState: MTLCommandEncoderErrorStateAffected, label: (null), debugSignposts: (null)>",
"<errorState: MTLCommandEncoderErrorStatePending, label: ForwardPassRenderEncoder, debugSignposts: (null)>"
)}
It seems the intersection code in AAPLShaders.metal occurs the timeout error...
...
auto intersection = inter.intersect( r, accelerationStructure, 0xFF );
...
I have troubles on Radeon Pro 5500M however Intel GPU and M1 MacBook Air doesn't.
Is there any workarounds to run on Radeon?
Thanks!
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I’m using constant address space MTLBuffer to implement instanced rendering using -[MTLRenderCommandEncoder drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:].
When I tested on the NVIDIA GPU (Geforce GT 650M) the buffer’s contents was truncated over 64KB in the shader program. However the content was not truncated on AMD or Intel GPUs. (I tested on Intel HD Graphics 4000, Intel UHD 630, Radeon Pro 5500M)
I found a specification on Metal Feature Set Tables document “Maximum function memory allocation for a buffer in the constant address space” is 64KB in GPUFamilyMac1/2. It looks like why the buffer is truncated on NVIDIA GPU.
When I target my app to Intel Mac, should I always limit constant address space buffer size maximum to 64KB even if running on AMD or Intel GPU?
When I use device address space instead of constant address space, Is there any performance difference between constant and device address space? (I heard that there's constant buffer cache on DirectX GPUs)
Thanks!