Nothing drawn with error on some machine: The Metal Performance Shaders operations encoded on it may not have completed

Hi,


I have trouble with a Metal based game I developed, in the final testing stage.


In my Mac Pro 2013 (6-core Xeon E5 and AMD FirePro D700 6 GB, macOS Mojave 10.14.6)

and one of my family's MacBook Pro of older one, no issues has been appered,

but in one of my family's MacBook Pro 2016 (13inch four thunderbolt ports Iris Graphics 550 macOS Mojave 10.14.6)

application dumps following errors repeatedly and the game window is blackouted...


Errors:

-‐‐‐‐‐

Error: command buffer exited with error status.

The Metal Performance Shaders operations encoded on it may not have completed.

Error:

(null)

Caused GPU Timeout Error (IOAF code 2)

<MTLIGAccelCommandBuffer: 0x7f97caf9a640>

label = <none>

device = <MTLIGAccelDevice: 0x1106fe000>

name = Intel(R) Iris(TM) Graphics 550

commandQueue = <MTLIGAccelCommandQueue: 0x7f97c856fd20>

label = <none>

device = <MTLIGAccelDevice: 0x1106fe000>

name = Intel(R) Iris(TM) Graphics 550

retainedReferences = 1

Error: command buffer exited with error status.

The Metal Performance Shaders operations encoded on it may not have completed.

Error:

(null)

Ignored (for causing prior/excessive GPU errors) (IOAF code 4)

<MTLIGAccelCommandBuffer: 0x7f97cadd9410>

label = <none>

device = <MTLIGAccelDevice: 0x1106fe000>

name = Intel(R) Iris(TM) Graphics 550

commandQueue = <MTLIGAccelCommandQueue: 0x7f97c856fd20>

label = <none>

device = <MTLIGAccelDevice: 0x1106fe000>

name = Intel(R) Iris(TM) Graphics 550

retainedReferences = 1

-‐‐‐‐‐


Is there someone have any ideas?

Thanks.


-‐‐‐‐‐

I thought I should ask Developer Technical Support but in there I should not post a issue

about a pre-release software... So I posted here.

Replies

And, I use the Metal Performance Shader only to blur a luminance texture,

I use MPS nowhere other than here. Ofcource I use Metal codes for other places.

---

do {

let renderPassDescriptor2 = MTLRenderPassDescriptor()

renderPassDescriptor2.colorAttachments[0].texture = mLuminanceOutputTex

renderPassDescriptor2.colorAttachments[0].loadAction = .clear

renderPassDescriptor2.colorAttachments[0].clearColor = MTLClearColor(red: Double(0.4),

green: Double(0.4),

blue: Double(1.0),

alpha: Double(1.0))

let blur = MPSImageGaussianBlur(device: mMetalDevice, sigma: 10)

var mutableTex: MTLTexture = mLuminanceOutputTex

_ = withUnsafeMutablePointer(to: &mutableTex) { texturePtr in

blur.encode(commandBuffer: cmdBuffer,

inPlaceTexture: texturePtr,

fallbackCopyAllocator: nil)

}

}

---

Again, no problems on my Mac Pro and one of my family's MBP for this code.

SOLVED


It was totally my miscoding.

In the first screen I added recently some "empty" render encoders run so the game fails drawing.


But, I could not understand why the error occurred in only one environment I have...

On my development machine it's all green.