[Mesa-dev] [PATCH] mesa: Use GL_RED for DEPTH_TEXTURE_MODE for #version 300 es shaders.
Eric Anholt
eric at anholt.net
Mon Jan 21 20:32:32 PST 2013
Kenneth Graunke <kenneth at whitecape.org> writes:
> On 01/21/2013 01:38 PM, Eric Anholt wrote:
>> Kenneth Graunke <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.
>
> The trouble is, in at least one of the callers
> (gen7_update_texture_surface), I don't know whether we're setting up
> textures for the VS or for the FS. So I don't know which I should
> consult. I could plumb that through, but considering it doesn't matter,
> I'm tempted not to.
>
> Eric, is that okay with you, or would you still like me to pass a
> gl_shader_program rather than gl_context?
If it gets a comment noting why it's safe, it's fine with me.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130121/0e8e4736/attachment.pgp>
More information about the mesa-dev
mailing list