[Mesa-dev] [PATCH 16/53] r600: add shader key entries for tcs and tes.

Marek Olšák maraeo at gmail.com
Mon Nov 30 16:21:49 PST 2015


On Tue, Dec 1, 2015 at 12:45 AM, Dave Airlie <airlied at gmail.com> wrote:
> On 30 November 2015 at 21:20, Marek Olšák <maraeo at gmail.com> wrote:
>> On Mon, Nov 30, 2015 at 7:20 AM, Dave Airlie <airlied at gmail.com> wrote:
>>> From: Dave Airlie <airlied at redhat.com>
>>>
>>> with tessellation vs can now run on ls, and tes can
>>> run on vs or es, tcs runs on hs.
>>>
>>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>>> ---
>>>  src/gallium/drivers/r600/r600_hw_context.c   |  4 ++++
>>>  src/gallium/drivers/r600/r600_pipe.h         |  4 ++++
>>>  src/gallium/drivers/r600/r600_shader.c       | 13 +++++++++++--
>>>  src/gallium/drivers/r600/r600_shader.h       | 20 ++++++++++++++++++++
>>>  src/gallium/drivers/r600/r600_state_common.c | 11 ++++++++++-
>>>  5 files changed, 49 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c
>>> index 13b6918..b7845b5 100644
>>> --- a/src/gallium/drivers/r600/r600_hw_context.c
>>> +++ b/src/gallium/drivers/r600/r600_hw_context.c
>>> @@ -321,6 +321,10 @@ void r600_begin_new_cs(struct r600_context *ctx)
>>>                 r600_mark_atom_dirty(ctx, &ctx->hw_shader_stages[R600_HW_STAGE_GS].atom);
>>>                 r600_mark_atom_dirty(ctx, &ctx->gs_rings.atom);
>>>         }
>>> +       if (ctx->tes_shader) {
>>> +               r600_mark_atom_dirty(ctx, &ctx->hw_shader_stages[EG_HW_STAGE_HS].atom);
>>> +               r600_mark_atom_dirty(ctx, &ctx->hw_shader_stages[EG_HW_STAGE_LS].atom);
>>> +       }
>>
>> If tes_shader is temporarily NULL, this will cause that HS+LS won't be
>> set. I think this should be done unconditionally.
>
> Why is that different from the geom shader case above it?
>
> It isn't a big problem to make this unconditional at least on evergreen.

You are probably right. I need to take a closer look because I haven't
reviewed the whole series yet.

Marek


More information about the mesa-dev mailing list