We are writing a driver for some proprietary hardware using Gallium. And
this hardware supports GL_ARB_texture_float, but requires to change texture
format from PIPE_FORMAT_R32G32B32A32_FLOAT to PIPE_FORMAT_R8G8B8A8_UNORM
and use four samplers (one R8G8B8A8_UNORM texture for each original color).
How we should do it in a Gallium properly? If we will create multiple
samplers in create_sampler_view - it can cause a crash, when we have a
PIPE_MAX_SAMPLERS num of "large" textures. We want to use something similar
to u_transfer_helper, but for this format. So, I have some questions
regarding Gallium architecture, which affects this situation:

1. Where we should write a splitter? In a pipe_resource, or in a
pipe_transfer, or in a sampler_view?
2. Do you have something related to this case in Gallium already to not to
reinvent a bicycle? (If you have, we will use internal functions and not
write our own).
3. Do you even support this kind of hardware which splits textures? Because
I cannot found any example except u_transfer_helper (but it is only for one
specific case, not for general).
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to