[Mesa-dev] [PATCH 07/11] glsl_to_tgsi: enable copy propagation for tessellation shaders
Nicolai Hähnle
nhaehnle at gmail.com
Thu Oct 5 15:04:19 UTC 2017
On 03.10.2017 17:46, Marek Olšák wrote:
> On Mon, Oct 2, 2017 at 12:55 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
>> On 29.09.2017 14:25, Marek Olšák wrote:
>>>
>>> From: Marek Olšák <marek.olsak at amd.com>
>>>
>>> just don't propagate output reads
>>> ---
>>> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 6 ++----
>>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> index 50a71e4..2d62213 100644
>>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> @@ -4940,20 +4940,21 @@ glsl_to_tgsi_visitor::copy_propagate(void)
>>> /* If this is a copy, add it to the ACP. */
>>> if (inst->op == TGSI_OPCODE_MOV &&
>>> inst->dst[0].file == PROGRAM_TEMPORARY &&
>>> !(inst->dst[0].file == inst->src[0].file &&
>>> inst->dst[0].index == inst->src[0].index) &&
>>> !inst->dst[0].reladdr &&
>>> !inst->dst[0].reladdr2 &&
>>> !inst->saturate &&
>>> inst->src[0].file != PROGRAM_ARRAY &&
>>> + inst->src[0].file != PROGRAM_OUTPUT &&
>>
>>
>> Did you check shader-db effects of this? We only really need this
>> restriction on TCS. Though I guess radeonsi is actually one of the least
>> affected drivers thanks to LLVM.
>
> No shader-db change, but I can add this:
>
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index 9ddfb1e..1253f88 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -4970,7 +4970,8 @@ glsl_to_tgsi_visitor::copy_propagate(void)
> !inst->dst[0].reladdr2 &&
> !inst->saturate &&
> inst->src[0].file != PROGRAM_ARRAY &&
> - inst->src[0].file != PROGRAM_OUTPUT &&
> + (this->shader->Stage != MESA_SHADER_TESS_CTRL ||
> + inst->src[0].file != PROGRAM_OUTPUT) &&
> !inst->src[0].reladdr &&
> !inst->src[0].reladdr2 &&
> !inst->src[0].negate &&
That looks good, thanks!
>
>
> Marek
>
--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
More information about the mesa-dev
mailing list