gpu: don't allocate null materials buffer when running on the CPU

References: https://todo.sr.ht/~eliasnaur/gio/469
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2023-01-14 09:59:55 -06:00
parent 1eb5c7dbcd
commit af7afea5a3
+7 -6
View File
@@ -404,12 +404,6 @@ func newCompute(ctx driver.Device) (*compute, error) {
conf: new(config),
memHeader: new(memoryHeader),
}
null, err := ctx.NewTexture(driver.TextureFormatRGBA8, 1, 1, driver.FilterNearest, driver.FilterNearest, driver.BufferBindingShaderStorageRead)
if err != nil {
g.Release()
return nil, err
}
g.output.nullMaterials = null
shaders := []struct {
prog *computeProgram
src shader.Sources
@@ -431,6 +425,13 @@ func newCompute(ctx driver.Device) (*compute, error) {
}
if g.useCPU {
g.dispatcher = newDispatcher(runtime.NumCPU())
} else {
null, err := ctx.NewTexture(driver.TextureFormatRGBA8, 1, 1, driver.FilterNearest, driver.FilterNearest, driver.BufferBindingShaderStorageRead)
if err != nil {
g.Release()
return nil, err
}
g.output.nullMaterials = null
}
copyVert, copyFrag, err := newShaders(ctx, gio.Shader_copy_vert, gio.Shader_copy_frag)