File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 203203
204204 mtlDesc.mipmapLevelCount = dstTexDesc.mipLevels ;
205205 mtlDesc.arrayLength = dstTexDesc.layerCount ;
206- #if defined(ARCH_OS_OSX)
207- mtlDesc.resourceOptions = MTLResourceStorageModeManaged ;
208- #else
209- mtlDesc.resourceOptions = MTLResourceStorageModeShared ;
210- #endif
206+ mtlDesc.resourceOptions = _hgi->GetCapabilities ()->preferredStorageMode ;
211207 mtlDesc.sampleCount = 1 ;
212208 if (dstTexDesc.type == HgiTextureType3D) {
213209 mtlDesc.depth = depth;
Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ class HgiMetalCapabilities final : public HgiCapabilities
3232 int GetShaderVersion () const override ;
3333
3434 MTLResourceOptions defaultStorageMode;
35+ MTLResourceOptions preferredStorageMode;
3536 bool hasVertexMemoryBarrier;
3637 bool useParallelEncoder;
3738 bool requiresIndirectDrawFix;
Original file line number Diff line number Diff line change 2626 bool hasIntelGPU = false ;
2727#if defined(ARCH_OS_OSX)
2828 hasIntelGPU = [device isLowPower ];
29+ if (![device hasUnifiedMemory ]) {
30+ preferredStorageMode = MTLResourceStorageModeManaged ;
31+ } else
2932#endif
33+ {
34+ preferredStorageMode = MTLResourceStorageModeShared ;
35+ }
3036 defaultStorageMode = MTLResourceStorageModeShared ;
3137 bool unifiedMemory = false ;
3238 bool barycentrics = false ;
Original file line number Diff line number Diff line change 2424 MTLTextureUsage usage = MTLTextureUsageShaderRead ;
2525
2626 if (desc.initialData && desc.pixelsByteSize > 0 ) {
27- #if defined(ARCH_OS_OSX)
28- id <MTLDevice > device = hgi->GetPrimaryDevice ();
29- if (![device hasUnifiedMemory ]) {
30- resourceOptions = MTLResourceStorageModeManaged ;
31- } else
32- #endif
33- {
34- resourceOptions = MTLResourceStorageModeShared ;
35- }
27+ resourceOptions = hgi->GetCapabilities ()->preferredStorageMode ;
3628 }
3729
3830 MTLPixelFormat mtlFormat = HgiMetalConversions::GetPixelFormat (
You can’t perform that action at this time.
0 commit comments