mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 01:45:36 +00:00
gpu: don't validate uniform locations
Sufficiently smart GPU drivers can eliminate unused uniforms across shader types. Fixes gio#158 Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -65,7 +65,7 @@ func (s *FBO) Blit() {
|
|||||||
}
|
}
|
||||||
s.prog = prog
|
s.prog = prog
|
||||||
s.c.UseProgram(prog)
|
s.c.UseProgram(prog)
|
||||||
s.c.Uniform1i(gl.GetUniformLocation(s.c, prog, "tex"), 0)
|
s.c.Uniform1i(s.c.GetUniformLocation(prog, "tex"), 0)
|
||||||
s.quad = s.c.CreateBuffer()
|
s.quad = s.c.CreateBuffer()
|
||||||
s.c.BindBuffer(gl.ARRAY_BUFFER, s.quad)
|
s.c.BindBuffer(gl.ARRAY_BUFFER, s.quad)
|
||||||
s.c.BufferData(gl.ARRAY_BUFFER,
|
s.c.BufferData(gl.ARRAY_BUFFER,
|
||||||
|
|||||||
+1
-1
@@ -488,7 +488,7 @@ func (b *Backend) NewProgram(vertShader, fragShader backend.ShaderSources) (back
|
|||||||
}
|
}
|
||||||
|
|
||||||
func lookupUniform(funcs Functions, p Program, loc backend.UniformLocation) uniformLocation {
|
func lookupUniform(funcs Functions, p Program, loc backend.UniformLocation) uniformLocation {
|
||||||
u := GetUniformLocation(funcs, p, loc.Name)
|
u := funcs.GetUniformLocation(p, loc.Name)
|
||||||
return uniformLocation{uniform: u, offset: loc.Offset, typ: loc.Type, size: loc.Size}
|
return uniformLocation{uniform: u, offset: loc.Offset, typ: loc.Type, size: loc.Size}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,14 +37,6 @@ func CreateProgram(ctx Functions, vsSrc, fsSrc string, attribs []string) (Progra
|
|||||||
return prog, nil
|
return prog, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUniformLocation(ctx Functions, prog Program, name string) Uniform {
|
|
||||||
loc := ctx.GetUniformLocation(prog, name)
|
|
||||||
if !loc.valid() {
|
|
||||||
panic(fmt.Errorf("uniform %s not found", name))
|
|
||||||
}
|
|
||||||
return loc
|
|
||||||
}
|
|
||||||
|
|
||||||
func createShader(ctx Functions, typ Enum, src string) (Shader, error) {
|
func createShader(ctx Functions, typ Enum, src string) (Shader, error) {
|
||||||
sh := ctx.CreateShader(typ)
|
sh := ctx.CreateShader(typ)
|
||||||
if !sh.valid() {
|
if !sh.valid() {
|
||||||
|
|||||||
Reference in New Issue
Block a user