diff options
| author | dec05eba <dec05eba@protonmail.com> | 2025-09-21 03:20:58 +0200 |
|---|---|---|
| committer | dec05eba <dec05eba@protonmail.com> | 2025-09-21 03:21:30 +0200 |
| commit | 1ded0a79fd9519d4155ee06685df193c7c80d79f (patch) | |
| tree | 51b2130450dc64c5c220adf2e1326fc691118f19 /src/shader.c | |
| parent | 2c22782ca0af78070089938feb873beaa1d78722 (diff) | |
Remove compute shader. It doesn't improve performance and it has worse UV quality because of incorrect pixel colors
Diffstat (limited to 'src/shader.c')
| -rw-r--r-- | src/shader.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/shader.c b/src/shader.c index ba4db80..d952d5d 100644 --- a/src/shader.c +++ b/src/shader.c @@ -38,10 +38,9 @@ static unsigned int load_shader(gsr_egl *egl, unsigned int type, const char *sou return shader_id; } -static unsigned int load_program(gsr_egl *egl, const char *vertex_shader, const char *fragment_shader, const char *compute_shader) { +static unsigned int load_program(gsr_egl *egl, const char *vertex_shader, const char *fragment_shader) { unsigned int vertex_shader_id = 0; unsigned int fragment_shader_id = 0; - unsigned int compute_shader_id = 0; unsigned int program_id = 0; int linked = 0; bool success = false; @@ -58,12 +57,6 @@ static unsigned int load_program(gsr_egl *egl, const char *vertex_shader, const goto done; } - if(compute_shader) { - compute_shader_id = load_shader(egl, GL_COMPUTE_SHADER, compute_shader); - if(compute_shader_id == 0) - goto done; - } - program_id = egl->glCreateProgram(); if(program_id == 0) { fprintf(stderr, "gsr error: load_program: failed to create shader program, error: %d\n", egl->glGetError()); @@ -76,9 +69,6 @@ static unsigned int load_program(gsr_egl *egl, const char *vertex_shader, const if(fragment_shader_id) egl->glAttachShader(program_id, fragment_shader_id); - if(compute_shader_id) - egl->glAttachShader(program_id, compute_shader_id); - egl->glLinkProgram(program_id); egl->glGetProgramiv(program_id, GL_LINK_STATUS, &linked); @@ -102,8 +92,6 @@ static unsigned int load_program(gsr_egl *egl, const char *vertex_shader, const if(program_id) egl->glDeleteProgram(program_id); } - if(compute_shader_id) - egl->glDeleteShader(compute_shader_id); if(fragment_shader_id) egl->glDeleteShader(fragment_shader_id); if(vertex_shader_id) @@ -111,17 +99,17 @@ static unsigned int load_program(gsr_egl *egl, const char *vertex_shader, const return program_id; } -int gsr_shader_init(gsr_shader *self, gsr_egl *egl, const char *vertex_shader, const char *fragment_shader, const char *compute_shader) { +int gsr_shader_init(gsr_shader *self, gsr_egl *egl, const char *vertex_shader, const char *fragment_shader) { assert(egl); self->egl = egl; self->program_id = 0; - if(!vertex_shader && !fragment_shader && !compute_shader) { - fprintf(stderr, "gsr error: gsr_shader_init: vertex, fragment shader and compute shaders can't be NULL at the same time\n"); + if(!vertex_shader && !fragment_shader) { + fprintf(stderr, "gsr error: gsr_shader_init: vertex and fragment shader can't be NULL at the same time\n"); return -1; } - self->program_id = load_program(self->egl, vertex_shader, fragment_shader, compute_shader); + self->program_id = load_program(self->egl, vertex_shader, fragment_shader); if(self->program_id == 0) return -1; |
