[Mesa-dev] [PATCH 09/10] i965: Shorten sampler loops in precompile key setup.

Paul Berry stereotype441 at gmail.com
Thu Aug 15 22:52:41 PDT 2013


On 14 August 2013 18:55, Kenneth Graunke <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>
> ---
>  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>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130815/7acddbdd/attachment-0001.html>


More information about the mesa-dev mailing list