mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 01:45:36 +00:00
gpu: switch from uniform buffers to combined push buffers
Vulkan doesn't support changing uniforms during a render pass. However, push constants *can* be changed. The gio-shader repository was changed to use push constants instead of uniforms, this change implements the corresponding driver and renderer change. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -1005,20 +1005,9 @@ func (b *Backend) BindVertexUniforms(buf driver.Buffer) {
|
||||
}
|
||||
if bf.buffer != 0 {
|
||||
C.renderEncSetVertexBuffer(enc, bf.buffer, uniformBufferIndex, 0)
|
||||
} else if bf.size > 0 {
|
||||
C.renderEncSetVertexBytes(enc, unsafe.Pointer(&bf.store[0]), C.NSUInteger(bf.size), uniformBufferIndex)
|
||||
}
|
||||
}
|
||||
|
||||
func (b *Backend) BindFragmentUniforms(buf driver.Buffer) {
|
||||
bf := buf.(*Buffer)
|
||||
enc := b.renderEnc
|
||||
if enc == 0 {
|
||||
panic("no active render pass")
|
||||
}
|
||||
if bf.buffer != 0 {
|
||||
C.renderEncSetFragmentBuffer(enc, bf.buffer, uniformBufferIndex, 0)
|
||||
} else if bf.size > 0 {
|
||||
C.renderEncSetVertexBytes(enc, unsafe.Pointer(&bf.store[0]), C.NSUInteger(bf.size), uniformBufferIndex)
|
||||
C.renderEncSetFragmentBytes(enc, unsafe.Pointer(&bf.store[0]), C.NSUInteger(bf.size), uniformBufferIndex)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user