[Mesa-dev] [PATCH] mesa: Use GL_RED for DEPTH_TEXTURE_MODE for #version 300 es shaders.

Kenneth Graunke kenneth at whitecape.org
Mon Jan 21 23:27:25 PST 2013


On 01/21/2013 08:52 PM, Paul Berry wrote:
> On 21 January 2013 14:48, Kenneth Graunke <kenneth at whitecape.org
> <mailto:kenneth at whitecape.org>> wrote:
>
>     On 01/21/2013 01:38 PM, Eric Anholt wrote:
>
>         Kenneth Graunke <kenneth at whitecape.org
>         <mailto:kenneth at whitecape.org>> writes:
>
>             ---
>                src/mesa/drivers/dri/i965/brw___state.h             | 3 ++-
>                src/mesa/drivers/dri/i965/brw___wm.c                | 2 +-
>                src/mesa/drivers/dri/i965/brw___wm_surface_state.c  | 8
>             ++++++--
>                src/mesa/drivers/dri/i965/__gen7_wm_surface_state.c | 4 ++--
>                4 files changed, 11 insertions(+), 6 deletions(-)
>
>             I believe the
>             BRW_NEW_VERTEX_PROGRAM/BRW___NEW_FRAGMENT_PROGRAM dirty bits
>             on the brw_texture_surfaces atom should cover my new usage
>             of shProg.
>             Eric, can you confirm?  I always get confused by
>             _NEW_PROGRAM vs.
>             CACHE_NEW_WM/VS_PROG vs. BRW_NEW_VERTEX/FRAGMENT___PROGRAM.
>               Thanks!
>
>
>         CACHE_NEW_*_PROG covers prog_data, BRW_NEW_*_PROGRAM covers the
>         brw_*_program and gl_shader_program structs, so that sounds
>         good.  But I
>         see an issue anyway...
>
>             diff --git
>             a/src/mesa/drivers/dri/i965/__brw_wm_surface_state.c
>             b/src/mesa/drivers/dri/i965/__brw_wm_surface_state.c
>             index 5e99592..b609b09 100644
>             --- a/src/mesa/drivers/dri/i965/__brw_wm_surface_state.c
>             +++ b/src/mesa/drivers/dri/i965/__brw_wm_surface_state.c
>             @@ -685,8 +685,10 @@
>             brw_get_surface_num___multisamples(unsigned num_samples)
>                 * swizzling.
>                 */
>                int
>             -brw_get_texture_swizzle(const struct gl_texture_object *t)
>             +brw_get_texture_swizzle(__struct gl_context *ctx,
>             +                        const struct gl_texture_object *t)
>                {
>             +   const struct gl_shader_program *shProg =
>             ctx->Shader.___CurrentFragmentProgram;
>
>
>         You're looking at the FS even if we're trying to set up textures
>         for the
>         VS.  I think the caller should pass in the particular program,
>         and then
>         it'll be more obvious to the caller which state flag is right.
>
>
>     Eric mentioned this on IRC:
>
>     <anholt> Kayden: oh, I suppose my comment about looking at the wrong
>     program in your depth change doesn't really matter since Version
>     will be the same in both.
>
>     which is true - otherwise the VS/FS link would have failed.
>
>
> Is this still going to be true when we implement
> ARB_separate_shader_objects?

No, but a lot of this code is going to have to get reworked when we do that.


More information about the mesa-dev mailing list