> In my case, VC4 has lots of custom state-dependent uniforms, and uniform
> upload is where we spend most of our CPU time (basically each draw call
> needs to re-upload the uniform stream, and the stream has to be in the
> order they will be used by instructions, rather than where they appear
> in NIR).
>
> So, I've just got an array of {type of uniform, some sort of index}
> tuples attached to the compiled shader to represent the stream.  Each
> can reference "offset in gallium const buffer" or "a load_const value"
> or "my special viewport x scale" or whatever, and I walk it at draw time
> to write out my stream.
So in VC4:
1. st call set_constant_buffer
2. VC4 prepare draw stream and const buffer modify info
3. when draw, VC4 use the modify info to upload data to constant
buffer set by set_constant_buffer

How do you ensure:
1. st will call set_constant_buffer because some shader has no uniform
2. the constant buffer has enough space, because you don't tell st to
allocate more space for driver spec uniform, right?

Regards,
Qiang
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to