heyx3 / Bplus.jl

A modern OpenGL 4.6 rendering framework, written in Julia.
Other
72 stars 3 forks source link

Make certain OpenGL extensions optional, mainly `GL_ARB_gpu_shader_int64` #32

Open heyx3 opened 1 year ago

heyx3 commented 1 year ago

Intel integrated graphics can do bindless textures, but cannot do int64 types in shader for some reason. It seems silly to disable an entire type of GPU due to a shader language convenience.

I was wondering if we want to allow users to specify other extensions they want supported, but I feel like B+ will probably need to natively incorporate most extensions for them to be meaningfully usable. On the other hand, extensions solely about shader language stuff could still be useful to users.

The user will want to be able to query which optional extensions were supported. This information is only available at runtime, so Device seems like the right place for it.

heyx3 commented 6 months ago

You can now request particular extensions when creating a Context, and int64 is optional so we should support Intel integrated GPUs now!

Technically you can even create a context without bindless textures, although I have to double-check that it works right.

Leaving this ticket open until I can double-check that things work on integrated GPU's.