nuklear icon indicating copy to clipboard operation
nuklear copied to clipboard

uint64_t in glsl with glfw and openGL 4 don't work.

Open Cewein opened this issue 7 years ago • 3 comments

I am using a GTX 1050 on a laptop, lastest NVidia driver 417, and using OpenGL glad with the spec

Language/Generator: C/C++
Specification: gl
APIs: gl=4.5
Profile: core
Extensions:
    GL_ARB_bindless_texture,
    GL_ARB_gpu_shader_int64
Loader: True
Local files: False
Omit khrplatform: False
Reproducible: False

it compile but when glsl is running it fail. I have try with all the add-on for glad, still compile but no shader.

It's with Nuklear GUI where in the creation part the is this shader :

static const GLchar *fragment_shader =
		NK_SHADER_VERSION
		NK_SHADER_BINDLESS
		NK_SHADER_64BIT
		"precision mediump float;\n"
		"uniform uint64_t Texture;\n"
		"in vec2 Frag_UV;\n"
		"in vec4 Frag_Color;\n"
		"out vec4 Out_Color;\n"
		"void main(){\n"
		"   sampler2D smp = sampler2D(Texture);\n"
		"   Out_Color = Frag_Color * texture(smp, Frag_UV.st);\n"
		"}\n";

with the define :

#define NK_SHADER_VERSION "#version 450 core\n"
#define NK_SHADER_BINDLESS "#extension GL_ARB_bindless_texture : require\n"
#define NK_SHADER_64BIT "#extension GL_ARB_gpu_shader_int64 : require\n"

the error output is 'GL_ARB_gpu_shader_int64' is not supported

it don't know why ? it's been tested on a AMD same error.

Cewein avatar Jan 26 '19 15:01 Cewein

The error is more clear, there is many hardware error with the usage of uint64_t so it might be better to stick with sample2D or doing a check is it's enable on the hardware. because uint64_t work with a GTX 1070ti but not with a 1050.

Cewein avatar Jan 27 '19 23:01 Cewein

Hey @Cewein

I use a 1050 (Surface book 2) and this works ok for me if I ensure opengl is actually using the 1050 and not the integrated Intel chip.

If you use GLAD, make sure to add the following extensions:

    GL_ARB_bindless_texture,
    GL_ARB_gpu_shader_int64,

If you want to stick with regular Sample2D (non bindless) then you can just use the Opengl3 backend of Nuklear. (The point of the GL4 sample was to show bindless with Nuklear)

lumonix avatar Jan 28 '19 15:01 lumonix

@lumonix can You help me ? Please look this https://github.com/vurtun/nuklear/issues/799 how add things to canvas/main window

letarg0 avatar Feb 15 '19 10:02 letarg0