Submission checklist
Description
After upgrading from 6.20.5 to 6.21.1, we've started hitting a Metal API Validation assertion when rendering with the New Runtime. It only occurs when "Metal API Validation" is enabled in the scheme's Run → Diagnostics options; with validation disabled the app runs and the animations render fine.
The assertion fires from the Metal command encoder at draw time. Two of the vertex shader's buffer arguments (indices 6 and 7, TC and PB) are reported as unbound. Because it's a hard assertion, the process aborts.
This does not reproduce on 6.20.5, so it appears to be a regression introduced somewhere in the 6.21.x line.
Console output:
-[MTLDebugRenderCommandEncoder validateCommonDrawErrors:], line 6001: error 'Draw Errors Validation
Vertex Function(YB): missing Buffer binding at index 6 for TC[0].
Vertex Function(YB): missing Buffer binding at index 7 for PB[0].
'
-[MTLDebugRenderCommandEncoder validateCommonDrawErrors:], line 6001: error 'Draw Errors Validation
Vertex Function(YB): missing Buffer binding at index 6 for TC[0].
Vertex Function(YB): missing Buffer binding at index 7 for PB[0].
'
-[MTLDebugRenderCommandEncoder validateCommonDrawErrors:]:6001: failed assertion `Draw Errors Validation
Vertex Function(YB): missing Buffer binding at index 6 for TC[0].
Vertex Function(YB): -[MTLDebugRenderCommandEncoder validateCommonDrawErrors:]:6001: failed assertion `Draw Errors Validation
Vertex Function(YB): missing Buffer binding at index 6 for TC[0].
Vertex Function(YB): missing Buffer binding at index 7 for PB[0].
'
missing Buffer binding at index 7 for PB[0].
'
-[MTLDebugRenderCommandEncoder validateCommonDrawErrors:]:6001: failed assertion `Draw Errors Validation
Vertex Function(YB): missing Buffer binding at index 6 for TC[0].
Vertex Function(YB): missing Buffer binding at index 7 for PB[0].
'
CoreSimulator 1051.55 - Device: iPhone 17 Pro (ADDB7915-F08F-4C7E-BAA7-9861662F534E) - Runtime: iOS 26.4 (23E244) - DeviceType: iPhone 17 Pro
-[MTLDebugRenderCommandEncoder validateCommonDrawErrors:]:6001: failed assertion `Draw Errors Validation
Vertex Function(YB): missing Buffer binding at index 6 for TC[0].
Vertex Function(YB): missing Buffer binding at index 7 for PB[0].
'
Previous working version
6.20.5
Rive Apple runtime version
6.21.1
Reproduction steps / code
- Edit the run scheme → Run → Diagnostics → enable Metal API Validation.
- Build and run a Debug build on the iOS Simulator.
- Present a view that renders a
.riv file using the New Runtime (Rive Renderer / Metal backend) — e.g. Tests/Assets/data_binding_test.riv from this repo (https://github.com/rive-app/rive-ios/blob/main/Tests/Assets/data_binding_test.riv).
- On draw, the
validateCommonDrawErrors assertion above fires and the app aborts.
With Metal API Validation disabled, the same flow renders correctly.
Upload your reproduction files / stack trace
No response
Source .riv / .rev file
Tests/Assets/data_binding_test.riv (from this repo)
Screenshots / video
No response
Device
iOS Simulator (iPhone 17 Pro)
Apple OS version
iOS 26.4
Additional context
Only reproduces with Metal API Validation enabled; does not reproduce on 6.20.5.
Submission checklist
RiveRuntimeDescription
After upgrading from
6.20.5to6.21.1, we've started hitting a Metal API Validation assertion when rendering with the New Runtime. It only occurs when "Metal API Validation" is enabled in the scheme's Run → Diagnostics options; with validation disabled the app runs and the animations render fine.The assertion fires from the Metal command encoder at draw time. Two of the vertex shader's buffer arguments (indices 6 and 7,
TCandPB) are reported as unbound. Because it's a hard assertion, the process aborts.This does not reproduce on
6.20.5, so it appears to be a regression introduced somewhere in the6.21.xline.Console output:
Previous working version
6.20.5
Rive Apple runtime version
6.21.1
Reproduction steps / code
.rivfile using the New Runtime (Rive Renderer / Metal backend) — e.g.Tests/Assets/data_binding_test.rivfrom this repo (https://github.com/rive-app/rive-ios/blob/main/Tests/Assets/data_binding_test.riv).validateCommonDrawErrorsassertion above fires and the app aborts.With Metal API Validation disabled, the same flow renders correctly.
Upload your reproduction files / stack trace
No response
Source
.riv/.revfileTests/Assets/data_binding_test.riv(from this repo)Screenshots / video
No response
Device
iOS Simulator (iPhone 17 Pro)
Apple OS version
iOS 26.4
Additional context
Only reproduces with Metal API Validation enabled; does not reproduce on
6.20.5.