Message ID | 20180703154135.14101-1-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 03, 2018 at 04:41:35PM +0100, Chris Wilson wrote: > The shaders/blit.g7a has weird artefacts (random pixel kill) when > drawing with to an odd destination coordinate. Rather than debug the > issue with the assembler, replace the kernel with the one used by SNA > for simple copies. > > Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Yep, works on my chv and skl. Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> I can see the obvious pln(8) -> pln(16) change from the hex, but didn't bother reading through the assembly to try and figure out what the rest of the differences amount to. So I'll just toss in an ack. Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > lib/rendercopy_gen8.c | 10 ++++------ > lib/rendercopy_gen9.c | 10 ++++------ > 2 files changed, 8 insertions(+), 12 deletions(-) > > diff --git a/lib/rendercopy_gen8.c b/lib/rendercopy_gen8.c > index 2b5d9b52e..2e590e391 100644 > --- a/lib/rendercopy_gen8.c > +++ b/lib/rendercopy_gen8.c > @@ -51,12 +51,10 @@ struct { > /* see shaders/ps/blit.g7a */ > static const uint32_t ps_kernel[][4] = { > #if 1 > - { 0x0060005a, 0x21403ae8, 0x3a0000c0, 0x008d0040 }, > - { 0x0060005a, 0x21603ae8, 0x3a0000c0, 0x008d0080 }, > - { 0x0060005a, 0x21803ae8, 0x3a0000d0, 0x008d0040 }, > - { 0x0060005a, 0x21a03ae8, 0x3a0000d0, 0x008d0080 }, > - { 0x02800031, 0x2e0022e8, 0x0e000140, 0x08840001 }, > - { 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 }, > + { 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 }, > + { 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 }, > + { 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 }, > + { 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 }, > #else > /* Write all -1 */ > { 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 }, > diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c > index 0157ced9c..79e312409 100644 > --- a/lib/rendercopy_gen9.c > +++ b/lib/rendercopy_gen9.c > @@ -52,12 +52,10 @@ struct { > /* see shaders/ps/blit.g7a */ > static const uint32_t ps_kernel[][4] = { > #if 1 > - { 0x0060005a, 0x21403ae8, 0x3a0000c0, 0x008d0040 }, > - { 0x0060005a, 0x21603ae8, 0x3a0000c0, 0x008d0080 }, > - { 0x0060005a, 0x21803ae8, 0x3a0000d0, 0x008d0040 }, > - { 0x0060005a, 0x21a03ae8, 0x3a0000d0, 0x008d0080 }, > - { 0x02800031, 0x2e0022e8, 0x0e000140, 0x08840001 }, > - { 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 }, > + { 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 }, > + { 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 }, > + { 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 }, > + { 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 }, > #else > /* Write all -1 */ > { 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 }, > -- > 2.18.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/lib/rendercopy_gen8.c b/lib/rendercopy_gen8.c index 2b5d9b52e..2e590e391 100644 --- a/lib/rendercopy_gen8.c +++ b/lib/rendercopy_gen8.c @@ -51,12 +51,10 @@ struct { /* see shaders/ps/blit.g7a */ static const uint32_t ps_kernel[][4] = { #if 1 - { 0x0060005a, 0x21403ae8, 0x3a0000c0, 0x008d0040 }, - { 0x0060005a, 0x21603ae8, 0x3a0000c0, 0x008d0080 }, - { 0x0060005a, 0x21803ae8, 0x3a0000d0, 0x008d0040 }, - { 0x0060005a, 0x21a03ae8, 0x3a0000d0, 0x008d0080 }, - { 0x02800031, 0x2e0022e8, 0x0e000140, 0x08840001 }, - { 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 }, + { 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 }, + { 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 }, + { 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 }, + { 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 }, #else /* Write all -1 */ { 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 }, diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c index 0157ced9c..79e312409 100644 --- a/lib/rendercopy_gen9.c +++ b/lib/rendercopy_gen9.c @@ -52,12 +52,10 @@ struct { /* see shaders/ps/blit.g7a */ static const uint32_t ps_kernel[][4] = { #if 1 - { 0x0060005a, 0x21403ae8, 0x3a0000c0, 0x008d0040 }, - { 0x0060005a, 0x21603ae8, 0x3a0000c0, 0x008d0080 }, - { 0x0060005a, 0x21803ae8, 0x3a0000d0, 0x008d0040 }, - { 0x0060005a, 0x21a03ae8, 0x3a0000d0, 0x008d0080 }, - { 0x02800031, 0x2e0022e8, 0x0e000140, 0x08840001 }, - { 0x05800031, 0x200022e0, 0x0e000e00, 0x90031000 }, + { 0x0080005a, 0x2f403ae8, 0x3a0000c0, 0x008d0040 }, + { 0x0080005a, 0x2f803ae8, 0x3a0000d0, 0x008d0040 }, + { 0x02800031, 0x2e203a48, 0x0e8d0f40, 0x08840001 }, + { 0x05800031, 0x20003a40, 0x0e8d0e20, 0x90031000 }, #else /* Write all -1 */ { 0x00600001, 0x2e000608, 0x00000000, 0x3f800000 },
The shaders/blit.g7a has weird artefacts (random pixel kill) when drawing with to an odd destination coordinate. Rather than debug the issue with the assembler, replace the kernel with the one used by SNA for simple copies. Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- lib/rendercopy_gen8.c | 10 ++++------ lib/rendercopy_gen9.c | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-)