Compatibility mode doesn't support compute shaders nor dynamic buffers

There are two things I discussed here:

  • Compute shaders. @hexgrid said it’s an OpenGL 4.3 feature, apparently not available on compatibility mode.
  • Dynamic buffers. This topic is simply about transferring data to VRAM while avoiding redundant copying.

To solve the latter, I tried to define a uniform, but there’s a max size of 65536=2^16 bytes, and you can only use statically sized arrays.

Therefore, I focused on ImageTexture and Image. The problem became avoiding double copies: my data on RAM -> image data on RAM -> VRAM, so the idea became how to let the Image.get_data() directly return the address of my data, as in the post section below.