The behavior defined in https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.18 , that the PRIMITIVE_RESTART_FIXED_INDEX state is always enabled, is not currently implemented. At least a couple of changes are needed:
1. WebGL2RenderingContextBase needs to enable the capability.
2. The command buffer's index validation code needs to be updated to take primitive restart into account. GetMaxValue in src/gpu/command_buffer/service/buffer_manager.cc needs to be conditionalized on whether primitive restart is enabled, and filter out the maximum index value for the type. Either the range_set_ in the Buffer class needs to be cleared whenever the PRIMITIVE_RESTART_FIXED_INDEX enable bit is changed, or it needs to be duplicated, one cache for when primitive restart is enabled, and one for when it's disabled. (Since the command buffer's ES 3.0 support is mainly intended for WebGL 2.0, just clearing range_set_ when the enable bit changes may be best, since it'll incur the least memory consumption.)
3. PRIMITIVE_RESTART_FIXED_INDEX needs to be emulated on desktop OpenGL as described in the TODOs for Issue 481184 .
Perhaps this should just be folded into Issue 481184 but for the time being I'm filing it separately.
Comment 1 by kbr@chromium.org
, Mar 11 2016