Hi Gert,

Can you test this along with the fetch shader patch Marek sent?

I'm giving it a piglit run now.

Dave.

On 21 August 2017 at 09:22, Dave Airlie <airl...@gmail.com> wrote:
> On 20 August 2017 at 05:25, Marek Olšák <mar...@gmail.com> wrote:
>> On Sat, Aug 19, 2017 at 7:24 PM, Gert Wollny <gw.foss...@gmail.com> wrote:
>>> Am Samstag, den 19.08.2017, 18:35 +0200 schrieb Marek Olšák:
>>>> Can you try the attached patch?
>>>
>>> While if fixes the crash and lets me run glxgears and some other rathe
>>> simple OpenGL programs it completely messes up blender (menu unreadable
>>> etc) and UE4Editor Window is also flickering.
>>
>> OK, well, I might have to fork u_blitter for radeonsi. I don't think I
>> have any other choice.
>
> Seems extreme, I'm sure you own at least one evergreen card.
>
> The first patch breaks things, but when I fix that a later patch
> breaks things again,
> but I'll reply to the individual patches in a minute.
>
> Dave.
From 4686bc355e54c9081c3c06a864b016b4da5f9bab Mon Sep 17 00:00:00 2001
From: Dave Airlie <airl...@redhat.com>
Date: Mon, 21 Aug 2017 10:03:10 +1000
Subject: [PATCH] r600g: limit coords passes to hw for txf on 2d surface.

This should be improved to cover a lot more cases,
but this is enough to fix up the new blitter series.

Signed-off-by: Dave Airlie <airl...@redhat.com>
---
 src/gallium/drivers/r600/r600_shader.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 8c5e6ff..df3165a 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -7634,6 +7634,26 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
 		/* the array index is read from Z */
 		tex.coord_type_z = 0;
 
+	if (opcode == FETCH_OP_LD) {
+		/* masking doesn't appear to work for LD,
+		   set the unused srcs to 0. */
+		switch (inst->Texture.Texture) {
+		case TGSI_TEXTURE_2D_ARRAY:
+			tex.src_sel_w = 4;
+			break;
+		case TGSI_TEXTURE_2D:
+		case TGSI_TEXTURE_RECT:
+			tex.src_sel_z = 4;
+			tex.src_sel_w = 4;
+			break;
+		case TGSI_TEXTURE_1D:
+			tex.src_sel_y = 4;
+			tex.src_sel_z = 4;
+			tex.src_sel_w = 4;
+			break;
+		}
+	}
+
 	/* mask unused source components */
 	if (opcode == FETCH_OP_SAMPLE || opcode == FETCH_OP_GATHER4) {
 		switch (inst->Texture.Texture) {
-- 
2.9.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to