[Mesa-dev] [PATCH 09/10] i965: Shorten sampler loops in precompile key setup.
Kenneth Graunke
kenneth at whitecape.org
Sun Aug 18 17:58:29 PDT 2013
On 08/15/2013 10:52 PM, Paul Berry wrote:
> On 14 August 2013 18:55, Kenneth Graunke <kenneth at whitecape.org
> <mailto:kenneth at whitecape.org>> wrote:
>
> Now that we have the number of samplers available, we don't need to
> iterate over all 16. This should be particularly helpful for vertex
> shaders.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org
> <mailto:kenneth at whitecape.org>>
> ---
> src/mesa/drivers/dri/i965/brw_fs.cpp | 2 +-
> src/mesa/drivers/dri/i965/brw_vs.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp
> b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index 69e544a..27263fd 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -3143,7 +3143,7 @@ brw_fs_precompile(struct gl_context *ctx,
> struct gl_shader_program *prog)
>
> key.clamp_fragment_color = ctx->API == API_OPENGL_COMPAT;
>
> - for (int i = 0; i < MAX_SAMPLERS; i++) {
> + for (unsigned i = 0; i < brw->wm.sampler_count; i++) {
>
>
> Precompile is called during link, before the program is made current.
> So brw->wm is some other program. I think you need to do this instead:
> _mesa_fls(fp->Base.SamplersUsed).
>
> if (fp->Base.ShadowSamplers & (1 << i)) {
> /* Assume DEPTH_TEXTURE_MODE is the default: X, X, X, 1 */
> key.tex.swizzles[i] =
> diff --git a/src/mesa/drivers/dri/i965/brw_vs.c
> b/src/mesa/drivers/dri/i965/brw_vs.c
> index 5b8173d..7df93c2 100644
> --- a/src/mesa/drivers/dri/i965/brw_vs.c
> +++ b/src/mesa/drivers/dri/i965/brw_vs.c
> @@ -544,7 +544,7 @@ brw_vs_precompile(struct gl_context *ctx, struct
> gl_shader_program *prog)
> key.base.program_string_id = bvp->id;
> key.base.clamp_vertex_color = ctx->API == API_OPENGL_COMPAT;
>
> - for (int i = 0; i < MAX_SAMPLERS; i++) {
> + for (unsigned i = 0; i < brw->vs.sampler_count; i++) {
>
>
> Similarly, this should be _mesa_fls(vp->Base.SamplersUsed).
>
> With those fixes, this patch is:
>
> Reviewed-by: Paul Berry <stereotype441 at gmail.com
> <mailto:stereotype441 at gmail.com>>
Yikes, you're right. I think I'll just drop this patch - it's not worth
the complexity, especially since I doubt there's any measureable benefit.
--Ken
More information about the mesa-dev
mailing list