A compute shader using atomics keeps failing to compile and also has caused a few crashes. Trying to use atomicCounterCompSwapARB() and atomicCounterExchangeARB() in various combos trying to get around it also cause similar problems.
Shader Program Error: Compute info
Internal error: assembly compile error for compute shader at offset 11781:
– error message –
line 472, column 11: error: unknown opcode modifier
– internal assembly text –
!!NVcp5.0
OPTION NV_shader_atomic_counters;
OPTION NV_internal;
OPTION NV_gpu_program_fp64;
OPTION NV_shader_storage_buffer;
OPTION NV_bindless_texture;
OPTION ARB_shader_image_size;
GROUP_SIZE 8 8 8;
cgc version 3.4.0001, build date Jul 10 2016
command line args:
#vendor NVIDIA Corporation
#version 3.4.0.1 COP Build Date Jul 10 2016
#profile gp5cp
#program main
#semantic PointBuffer : SBO_BUFFER[0]
#semantic FaceBuffer : SBO_BUFFER[1]
#semantic VolumeMap : IMAGE[0]
#semantic PointDispatchCount : COUNTER[0]0
#semantic PointDispatchCount2 : COUNTER[0]1
#semantic PointDispatchCount3 : COUNTER[0]2
#semantic PointCount : COUNTER[0]3
#semantic FaceCount : COUNTER[1]0
#var uint3 gl_GlobalInvocationID : $vin.GBLID : GBLID[3] : -1 : 1
#var uint points[0].position : : sbo_buffer[0][0] : -1 : 1
#var uint points[0].colour : : sbo_buffer[0][4] : -1 : 1
#var uint points[0].adjacency : : sbo_buffer[0][8] : -1 : 1
#var uint4 faces[0] : : sbo_buffer[1][0] : -1 : 1
#var ulong VolumeMap.__handle : : c[0] : -1 : 1
#var uint PointDispatchCount : COUNTER[0]0 : counter[0][0] : -1 : 1
#var uint PointDispatchCount2 : COUNTER[0]1 : counter[0][1] : -1 : 0
#var uint PointDispatchCount3 : COUNTER[0]2 : counter[0][2] : -1 : 0
#var uint PointCount : COUNTER[0]3 : counter[0][3] : -1 : 1
#var uint FaceCount : COUNTER[1]0 : counter[1][0] : -1 : 1
PARAM c[1] = { program.local[0] };
STORAGE sbo_buf0 = { program.storage[0] };
STORAGE sbo_buf1 = { program.storage[1] };
COUNTER atomic_counter0 = { program.counter[0] };
COUNTER atomic_counter1 = { program.counter[1] };
TEMP R0, R1, R2, R3, R4;
LONG TEMP D0;
TEMP RC;
SHORT TEMP HC;
PK64.U D0.x, c[0];
LOADIM.U32 R0, invocation.globalid, handle(D0.x), 3D;
MOV.U R1, R0;
BFE.U R0.y, {8, 8, 0, 0}.x, R0.x;
BFE.U R0.z, {8, 16, 0, 0}, R0.x;
BFE.U R0.w, {8, 24, 0, 0}, R0.Failed to compile GL program