[Mesa-dev] [PATCH 03/12] panfrost: Fix viewports

2019-03-24 Thread Alyssa Rosenzweig
Our viewport code hardcoded a number of wrong assumptions, which sort of sometimes worked but was definitely wrong (and broke most of dEQP). This corrects the logic, accounting for flipped-Y framebuffers, which fixes... most of dEQP. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers

[Mesa-dev] [PATCH 04/12] panfrost: Implement scissor test

2019-03-24 Thread Alyssa Rosenzweig
This preliminary implementation should handle some basic cases. Future work should scissor the FRAGMENT job as well for efficiency. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff

[Mesa-dev] [PATCH 08/12] panfrost/midgard: Map more bany/ball opcodes

2019-03-24 Thread Alyssa Rosenzweig
ot;hanging swizzles" allow us to implement 2/3-component opcodes correctly, implicitly lowering. Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/midgard_compile.c| 11 +++ 1 file changed, 11 insertions(+) diff --git a/src/gallium/drivers/panfrost/midgard/midga

[Mesa-dev] [PATCH 12/12] panfrost/midgard: Implement b2i; improve b2f/f2b

2019-03-24 Thread Alyssa Rosenzweig
Fixes dEQP-GLES2.functional.shaders.conversions.scalar_to_scalar.bool_to_int_fragment Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 48 --- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard

[Mesa-dev] [PATCH 09/12] panfrost/midgard: Lower bool_to_int32

2019-03-24 Thread Alyssa Rosenzweig
Fixes dEQP-GLES2.functional.shaders.linkage.varying_type_vec2 (among many others). Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 43 ++- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard

[Mesa-dev] [PATCH 11/12] panfrost/midgard: Lower i2b32

2019-03-24 Thread Alyssa Rosenzweig
Fixes dEQP-GLES2.functional.shader.conversions.scalar_to_scalar.int_to_bool_vertex Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src

[Mesa-dev] [PATCH 07/12] panfrost/midgard: Add more ball/bany, iabs ops

2019-03-24 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/midgard.h| 29 +++ 1 file changed, 29 insertions(+) diff --git a/src/gallium/drivers/panfrost/midgard/midgard.h b/src/gallium/drivers/panfrost/midgard/midgard.h index f3cabff8c2f..c40c94bc378 100644 --- a

[Mesa-dev] [PATCH 10/12] panfrost/midgard: Lower f2b32 to fne

2019-03-24 Thread Alyssa Rosenzweig
Fixes dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.mediump_bvec2_x_vertex Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b

[Mesa-dev] [PATCH 3/3] panfrost: Stub out ES3 caps/callbacks

2019-03-24 Thread Alyssa Rosenzweig
Although this is not functional (and the command stream side is not aiming for ES3 right now), this is enough to run dEQP-GLES3 shader tests with the version override directive; this is useful, as some ES3 shader feature can occur in ES2 class shaders due to lowering. Signed-off-by: Alyssa

[Mesa-dev] [PATCH 1/3] panfrost/midgard: Lower source modifiers for ints

2019-03-24 Thread Alyssa Rosenzweig
avoid regressions. Fixes the integer tests in dEQP-GLES2.functional.shaders.operator.unary_operator.minus.* Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/helpers.h | 2 ++ .../drivers/panfrost/midgard/midgard_compile.c | 9 +++-- src/gallium/drivers

[Mesa-dev] [PATCH 2/3] panfrost/midgard: Cleanup midgard_nir_algebraic.py

2019-03-24 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py b/src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py

Re: [Mesa-dev] [PATCH] panfrost: Cache index buffer bounds

2019-03-25 Thread Alyssa Rosenzweig
> Can you reuse u_vbuf_get_minmax_index()? From a preliminary read, it didn't look like that did caching? ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH v2 6/8] gallium: add lima driver

2019-03-25 Thread Alyssa Rosenzweig
> Seems Panfrost implementation does not take depth uniforms? That's a /* to-do */ for me; it should definitely be implemented before adding to common code. > we both use the viewport scale/transform vector as the uniform > in this lower pass. I think that's reasonable. I don't like wasting a ha

Re: [Mesa-dev] [PATCH v2 6/8] gallium: add lima driver

2019-03-25 Thread Alyssa Rosenzweig
> + [PPIR_INSTR_SLOT_ALU_VEC_MUL] = ppir_codegen_encode_vec_mul, > + [PPIR_INSTR_SLOT_ALU_SCL_MUL] = ppir_codegen_encode_scl_mul, > + [PPIR_INSTR_SLOT_ALU_VEC_ADD] = ppir_codegen_encode_vec_add, > + [PPIR_INSTR_SLOT_ALU_SCL_ADD] = ppir_codegen_encode_scl_add, vmul/smul/vadd/sadd are the (o

[Mesa-dev] [PATCH 4/4] panfrost/midgard: fpow is a two-part operation

2019-03-25 Thread Alyssa Rosenzweig
In fact, the native "fpow" instruction only does half of it; more work is needed for the actual instruction. For now, just lower. Fixes: 1ea42894c ("panfrost/midgard: Implement fpow") Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/helpers.h

[Mesa-dev] [PATCH 3/4] panfrost/midgard: Handle i2b constant

2019-03-25 Thread Alyssa Rosenzweig
Fixes dEQP-GLES2.functional.shaders.conversions.scalar_to_scalar.int_to_bool_fragment Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/midgard

[Mesa-dev] [PATCH 2/4] panfrost/midgard: Expand fge lowering to more types

2019-03-25 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/helpers.h | 1 + .../drivers/panfrost/midgard/midgard_compile.c | 14 +++--- .../panfrost/midgard/midgard_nir_algebraic.py | 3 --- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src

[Mesa-dev] [PATCH 1/4] panfrost/midgard: Add ult/ule ops

2019-03-25 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/helpers.h | 2 ++ src/gallium/drivers/panfrost/midgard/midgard.h | 4 src/gallium/drivers/panfrost/midgard/midgard_compile.c | 1 + 3 files changed, 7 insertions(+) diff --git a/src/gallium/drivers

Re: [Mesa-dev] [PATCH 3/4] panfrost/midgard: Handle i2b constant

2019-03-26 Thread Alyssa Rosenzweig
> Just an observation... > > f2b(0x8000) == false > i2b(0x8000) == true > > I haven't read surrounding code, but if the handling of f2b and i2b is > entirely identical, you'll run into trouble. Both are being lowered to fne/ine instructions; this hunk is just to force the second argument

Re: [Mesa-dev] [PATCH] panfrost: Cache index buffer bounds

2019-03-26 Thread Alyssa Rosenzweig
> It doesn't, but the inside of your caching function should probably be > using it. Ah, I see, fair point :) Will we want this caching to be moved up to shared Gallium or no? ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.free

Re: [Mesa-dev] [PATCH 1/5] panfrost: Fix sscanf format options

2019-03-27 Thread Alyssa Rosenzweig
Should be "%" PRIx64, I think? ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 2/5] panfrost: Set the GEM handle for AFBC buffers

2019-03-27 Thread Alyssa Rosenzweig
Reviewed-by: Alyssa Rosenzweig ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 3/5] panfrost: Also tell the kernel about the checksum_slab

2019-03-27 Thread Alyssa Rosenzweig
Reviewed-by: Alyssa Rosenzweig Good catch, thank you! ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 4/5] panfrost: Pass the context BOs to the kernel so they aren't unmapped while in use

2019-03-27 Thread Alyssa Rosenzweig
Reviewed-by: Alyssa Rosenzweig I concede when it's laid out like this, the number of scratchbuffers is a _little_ excessive. varying_mem is interesting since in the ES2 sense, it's purple internal scratch, but in ES3, it's a plain old CPU-usable buffer (which is how they impl

Re: [Mesa-dev] [PATCH 5/5] panfrost: Wait for last job to finish in force_flush_fragment

2019-03-27 Thread Alyssa Rosenzweig
Reviewed-by: Alyssa Rosenzweig Nice one :) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [PATCH 01/10] panfrost: Fix vertex buffer corruption

2019-03-28 Thread Alyssa Rosenzweig
Fixes crash in dEQP-GLES2.functional.buffer.* Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c

[Mesa-dev] [PATCH 4/9] panfrost/decode: Decode all cubemap faces

2019-03-28 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pandecode/decode.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/pandecode/decode.c b/src/gallium/drivers/panfrost/pandecode/decode.c index 86fb968e334..966bce6ebd7 100644

[Mesa-dev] [PATCH 3/9] panfrost: Preliminary work for cubemaps

2019-03-28 Thread Alyssa Rosenzweig
Again, not yet functional, but this sets up the memory management for cube maps. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 3 --- src/gallium/drivers/panfrost/pan_resource.c | 8 ++-- src/gallium/drivers/panfrost/pan_resource.h | 5 - 3 files

[Mesa-dev] [PATCH 2/9] panfrost/midgard: Add L/S op for writing cubemap coordinates

2019-03-28 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard.h | 9 + 1 file changed, 9 insertions(+) diff --git a/src/gallium/drivers/panfrost/midgard/midgard.h b/src/gallium/drivers/panfrost/midgard/midgard.h index 59957c1b566..b2849aa0fee 100644 --- a/src

[Mesa-dev] [PATCH 6/9] panfrost/midgard: Emit cubemap coordinates

2019-03-28 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/helpers.h| 7 - .../panfrost/midgard/midgard_compile.c| 30 --- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/helpers.h b/src/gallium

[Mesa-dev] [PATCH 1/9] panfrost/midgard: Disassemble `cube` texture op

2019-03-28 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/disassemble.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/panfrost/midgard/disassemble.c b/src/gallium/drivers/panfrost/midgard/disassemble.c index 66d32d942c4..376c8f46956 100644 --- a/src

[Mesa-dev] [PATCH 5/9] panfrost: Include all cubemap faces in bitmap list

2019-03-28 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index 253328f3694..b4a26f71dd3 100644 --- a

[Mesa-dev] [PATCH 9/9] panfrost: Implement missing texture formats

2019-03-28 Thread Alyssa Rosenzweig
- Implements RGB565/RGBA5551 formats - Don't advertise support for flipped RGBA5551 and ETC Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_format.c | 12 src/gallium/drivers/panfrost/pan_screen.c | 6 +- 2 files changed, 17 insertions(+), 1 del

[Mesa-dev] [PATCH 7/9] panfrost: Implement command stream for linear cubemaps

2019-03-28 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 12 +++- src/gallium/drivers/panfrost/pan_resource.c | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost

[Mesa-dev] [PATCH 8/9] panfrost: Extend tiling for cubemaps

2019-03-28 Thread Alyssa Rosenzweig
transfer_unmap now tiles for any tiled resource, not just TEXTURE_2D, which should more than just cubemaps! Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_resource.c | 28 ++--- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/gallium

[Mesa-dev] [PATCH 0/9] Implement cubemaps

2019-03-28 Thread Alyssa Rosenzweig
patch in the series implements some simple support for the remaining formats required in ES2. After this series, we are at 36/36 passing in: dEQP-GLES2.functional.texture.format.* Alyssa Rosenzweig (9): panfrost/midgard: Disassemble `cube` texture op panfrost/midgard: Add L/S op for

[Mesa-dev] [PATCH] panfrost: Remove support for legacy kernels

2019-03-31 Thread Alyssa Rosenzweig
. Panfrost users need to use a modern, mainline kernel supporting the Panfrost kernel driver from this commit forward. Signed-off-by: Alyssa Rosenzweig Cc: Tomeu Vizoso Cc: Rob Herring --- src/gallium/drivers/panfrost/.gitignore| 1 - src/gallium/drivers/panfrost/meson.build

[Mesa-dev] [PATCH 0/2] Implement (viewport) system values

2019-04-02 Thread Alyssa Rosenzweig
This patch set implements the infrastructure for piping system values through Panfrost, replacing the prior brittle system of magic uniform offsets. This infrastructure is used to implement the vertex shader viewport transformation, which will soon be shared with lima. Alyssa Rosenzweig (2

[Mesa-dev] [PATCH 1/2] nir: Add "viewport vector" system values

2019-04-02 Thread Alyssa Rosenzweig
). This patch adds vec3 scale/offset fields corresponding to the 3D Gallium viewport / glViewport+depth Signed-off-by: Alyssa Rosenzweig Cc: Eric Anholt --- src/compiler/nir/nir_intrinsics.py | 5 + 1 file changed, 5 insertions(+) diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler

[Mesa-dev] [PATCH 2/2] panfrost: Implement system values

2019-04-02 Thread Alyssa Rosenzweig
which was not possible with the old fixed uniform system and here serves as a proof-of-correctness test (as well as justifying the NIR changes). Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/meson.build | 1 + .../drivers/panfrost/midgard/helpers.h

[Mesa-dev] [PATCH 0/3] Cleanup tiled texture upload

2019-04-02 Thread Alyssa Rosenzweig
The state management for tiled textures was questionable to begin with; the cubemap changes transformed it to something only half-way reasonable, unwittingly regressing SuperTuxKart (among others). This change set finalizes the tiled texture refactor, fixing STK. Alyssa Rosenzweig (3): panfrost

[Mesa-dev] [PATCH 3/3] panfrost: Size tiled temp buffers correctly

2019-04-02 Thread Alyssa Rosenzweig
This should lower transient memory usage and improve performance slightly (due to less memory to malloc/free, better cache locality, etc). Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_resource.c | 12 +++- src/gallium/drivers/panfrost/pan_swizzle.c | 7

[Mesa-dev] [PATCH 2/3] panfrost: Respect box->width in tiled stores

2019-04-02 Thread Alyssa Rosenzweig
This fixes a regression uploading partial tiled textures introduced sometime during the cubemap series. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_resource.c | 4 +++- src/gallium/drivers/panfrost/pan_swizzle.c | 4 ++-- src/gallium/drivers/panfrost/pan_swizzle.h

[Mesa-dev] [PATCH 1/3] panfrost: Cleanup some indirection in pan_resource

2019-04-02 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_resource.c | 45 ++--- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index 3d93fd0dc4d..f7df1353d68

Re: [Mesa-dev] [PATCH 0/4] panfrost: Expose HW counters through the pipe_query iface

2019-04-04 Thread Alyssa Rosenzweig
> This series adds new hooks to the panfrost_driver driver interface so > that both the drm and non-drm drivers can be plugged (I only developped > the glue for the DRM driver so far, but can work on the non-DRM driver > if needed). You're in luck: we dropped support for the non-DRM driver yesterd

Re: [Mesa-dev] [PATCH 1/4] drm-uapi: panfrost: Add perfcnt related bits

2019-04-04 Thread Alyssa Rosenzweig
Good, but let's wait for the kernel side to be finalized first, in case the UABI changes a bit there :) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 2/4] panfrost: Expose perfcounters through the pipe_query interface

2019-04-04 Thread Alyssa Rosenzweig
> + if (!screen->driver->create_perfcnt_query) > + return NULL; Redundant -- it'll always be set since there's only DRM driver now. We should probably drop the indirection wholesale, too, but that's for a different patch. I guess if the DRM implementation isn't until next patch, it

Re: [Mesa-dev] [PATCH 3/4] panfrost: Implement perfcnt hooks in the DRM driver

2019-04-04 Thread Alyssa Rosenzweig
> + struct pandrost_drm_perfcnt_query *data; Typo. How did that even compile? --Oh, wait, you have that typo throughout the file. s/pandrost/panfrost/g, please ;) --- Other than that, Reviewed-by: Alyssa Rosenzweig ___ mesa-dev mailing list m

Re: [Mesa-dev] [PATCH 4/4] panfrost: Add T860 counters

2019-04-04 Thread Alyssa Rosenzweig
I sure hope you have a way of automatically generating these ^_^ One fleeting thought is that some of the counters have "scales" attached, where the logical value we need to report back is some specified integer multiple of what the hardware actually writes. I don't know if we want to account for

Re: [Mesa-dev] [PATCH 1/4] drm-uapi: panfrost: Add perfcnt related bits

2019-04-04 Thread Alyssa Rosenzweig
Gotcha! ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 2/4] panfrost: Expose perfcounters through the pipe_query interface

2019-04-04 Thread Alyssa Rosenzweig
> Will drop the indirect calls, and move the code to perfcnt.c (unless > you want to keep it in panfrost_drm.c). I'm not sure. Tomeu introduced the indirection/abstraction/etc to begin with; you might want to know his thoughts. I don't know if he has plans for continued refactors. Personally, it d

[Mesa-dev] [PATCH 1/6] panfrost/decode: Add flags for tilebuffer readback

2019-04-04 Thread Alyssa Rosenzweig
These flags are set when reading back the tilebuffer from a fragment shader via various mechanisms (including ARM_shader_framebuffer_fetch and EXT_pixel_local_storage). Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/include/panfrost-job.h | 7 +++ src/gallium/drivers

[Mesa-dev] [PATCH 2/6] panfrost: Add tilebuffer load? branch

2019-04-04 Thread Alyssa Rosenzweig
Also document branches better. Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/disassemble.c| 4 +++ .../drivers/panfrost/midgard/midgard.h| 34 ++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/midgard

[Mesa-dev] [PATCH 3/6] panfrost/midgard: Add umin/umax opcodes

2019-04-04 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/helpers.h | 2 ++ src/gallium/drivers/panfrost/midgard/midgard.h | 4 src/gallium/drivers/panfrost/midgard/midgard_compile.c | 2 ++ 3 files changed, 8 insertions(+) diff --git a/src/gallium/drivers

[Mesa-dev] [PATCH 5/6] panfrost/midgard: Add ibitcount8 op

2019-04-04 Thread Alyssa Rosenzweig
The mechanics of this opcode are a little opaque, but essentially, it's used in 8-bit mode to do a bit count in parallel of a uint and then doing a ton of clever iadd/imov ops to recombine. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/helpers.h | 1 + src/ga

[Mesa-dev] [PATCH 4/6] panfrost/midgard: Add ilzcnt op

2019-04-04 Thread Alyssa Rosenzweig
Used for implementing findLSB/MSB Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/helpers.h | 1 + src/gallium/drivers/panfrost/midgard/midgard.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/gallium/drivers/panfrost/midgard/helpers.h b/src/gallium

[Mesa-dev] [PATCH 6/6] panfrost/midgard: Enable lower_find_lsb

2019-04-04 Thread Alyssa Rosenzweig
This is exactly what the blob does. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.h b/src/gallium/drivers/panfrost/midgard/midgard_compile.h

[Mesa-dev] [PATCH 0/6] Document new functionality (tilebuffer, shaders)

2019-04-04 Thread Alyssa Rosenzweig
This patchset implements new functionality relating to tilebuffer loadback and some new operands found in the course of playing with tilebuffer loadback / related wanderings . Alyssa Rosenzweig (6): panfrost/decode: Add flags for tilebuffer readback panfrost: Add tilebuffer load? branch

Re: [Mesa-dev] [PATCH 0/2] Implement (viewport) system values

2019-04-05 Thread Alyssa Rosenzweig
Hi, NIR system values are the preferred method of transferring state like this around; the shared transformation pass should be agnostic to the underlying uniforms / state tracker / etc. Is there any reason we can't share the transform as I implement it here? (Which makes no assumptions about unif

Re: [Mesa-dev] [PATCH 0/4] Add nir_lower_viewport_transform

2019-04-05 Thread Alyssa Rosenzweig
See my other email implementing sysvals. That avoids changing the state tracker in uncomfortable ways or having special uniforms introduced. Lima should implement sysvals too, not just for viewport but also for emulating certain desktop functionality. See what vc4/v3d/freedreno do with sysvals for

Re: [Mesa-dev] [PATCH 0/2] Implement (viewport) system values

2019-04-06 Thread Alyssa Rosenzweig
> If we use the sysval, at least 1 is driver spec, 2 can be shared. So could you > move 2 into the nir dir for sharing with lima? For sure, I'll try to get a patch for that this weekend :) -Alyssa ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org

[Mesa-dev] [PATCH 2/2] panfrost/midgard: Use shared nir_lower_viewport_transform

2019-04-07 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 99 +-- 1 file changed, 2 insertions(+), 97 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c index

[Mesa-dev] [PATCH 0/2] Implement coordinate transformation

2019-04-07 Thread Alyssa Rosenzweig
s NIR). We're careful to vectorize everything as well (related to last week's sysval patch), to ensure good performance on Midgard (a vector arch). This might be helpful for either GPUs too; I'm not sure. Alyssa Rosenzweig (2): nir: Add nir_lower_viewport_transform panfrost

[Mesa-dev] [PATCH 1/2] nir: Add nir_lower_viewport_transform

2019-04-07 Thread Alyssa Rosenzweig
coordinate transformation and lowering gl_Position writes into screen-space gl_Position writes. Signed-off-by: Alyssa Rosenzweig Suggested-by: Qiang Yu Cc: Jason Ekstrand Cc: Eric Anholt --- src/compiler/nir/meson.build | 1 + src/compiler/nir/nir.h| 1

[Mesa-dev] [PATCH v2 2/2] panfrost/midgard: Use shared nir_lower_viewport_transform

2019-04-07 Thread Alyssa Rosenzweig
v2: Run before lowering I/O. Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 105 +- 1 file changed, 4 insertions(+), 101 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost

[Mesa-dev] [PATCH v2 0/2] NIR viewport lowering

2019-04-07 Thread Alyssa Rosenzweig
s NIR). We're careful to vectorize everything as well (related to last week's sysval patch), to ensure good performance on Midgard (a vector arch). This might be helpful for either GPUs too; I'm not sure. v2: Cleanup considerably by running before IO/var lowering. Alyssa Rosenz

[Mesa-dev] [PATCH v2 1/2] nir: Add nir_lower_viewport_transform

2019-04-07 Thread Alyssa Rosenzweig
coordinate transformation and lowering gl_Position writes into screen-space gl_Position writes. v2: Run directly on derefs before io/vars are lowered to cleanup the code substantially. Thank you to Qiang for this suggestion! Signed-off-by: Alyssa Rosenzweig Suggested-by: Qiang Yu Cc: Jason Ekstrand

Re: [Mesa-dev] [PATCH] panfrost: split asserts in pandecode

2019-04-11 Thread Alyssa Rosenzweig
Both patches are R-b: Alyssa Rosenzweig Thanks! ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH] panfrost: Fix ->set_vertex_buffers() for partial vertex bufs updates

2019-04-12 Thread Alyssa Rosenzweig
Reviewed-by: Alyssa Rosenzweig Looks great! pan_context.c is definitely some of the most fragile code in the driver right now, so I'm thrilled to get some attention to clean it up :) (Not tested by me yet -- I won't be able to test until

[Mesa-dev] [PATCH v3 2/2] panfrost/midgard: Use shared nir_lower_viewport_transform

2019-04-12 Thread Alyssa Rosenzweig
v2: Run before lowering I/O. Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 105 +- 1 file changed, 4 insertions(+), 101 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost

[Mesa-dev] [PATCH v3 1/2] nir: Add nir_lower_viewport_transform

2019-04-12 Thread Alyssa Rosenzweig
coordinate transformation and lowering gl_Position writes into screen-space gl_Position writes. v2: Run directly on derefs before io/vars are lowered to cleanup the code substantially. Thank you to Qiang for this suggestion! v3: Bikeshed continues. Signed-off-by: Alyssa Rosenzweig Suggested-by: Qiang

Re: [Mesa-dev] [PATCH v2 1/2] nir: Add nir_lower_viewport_transform

2019-04-12 Thread Alyssa Rosenzweig
> This should be done per nir function, and I suggest to divide this function > into more sub-functions to follow conventions of other nir_lower_* > implementation. You only should be writing gl_Position once anyway; why reinit for functions that likely won't use them? lower_alpha_test does it th

Re: [Mesa-dev] [PATCH v2 1/2] nir: Add nir_lower_viewport_transform

2019-04-12 Thread Alyssa Rosenzweig
> I believe it's agreement in mesa that the if ( ... ) should be on one line, > and the continue, return, etc should be on a new one. Fixed in v3. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mes

[Mesa-dev] [PATCH 1/2] nir: Add nir_lower_viewport_transform

2019-04-14 Thread Alyssa Rosenzweig
mment). Bikeshed comment. (Trivial -- reviews are from v3) Signed-off-by: Alyssa Rosenzweig Suggested-by: Qiang Yu Reviewed-by: Ian Romanick Reviewed-by: Qiang Yu Cc: Jason Ekstrand Cc: Eric Anholt --- src/compiler/Makefile.sources | 1 + src/compiler/nir/meson.

[Mesa-dev] [PATCH 2/2] panfrost/midgard: Use shared nir_lower_viewport_transform

2019-04-14 Thread Alyssa Rosenzweig
v2: Run before lowering I/O. Signed-off-by: Alyssa Rosenzweig Reviewed-by: Qiang Yu --- .../panfrost/midgard/midgard_compile.c| 105 +- 1 file changed, 4 insertions(+), 101 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium

[Mesa-dev] [PATCH 2/2] panfrost: Fixup vertex offsets to prevent shadow copy

2019-04-15 Thread Alyssa Rosenzweig
those masked off bits to the src_offset. Proof of correctness included, possibly for the opportunity to say "QED" unironically. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 104 + src/gallium/drivers/panfrost/pan_context.h | 6 +-

[Mesa-dev] [PATCH 1/2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-15 Thread Alyssa Rosenzweig
buffer handling code itself, so in the short-term, this allows us to remove the costly VBO staging workaround, since this patch addresses the underlying causes. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 37 -- src/gallium/drivers/panfrost

[Mesa-dev] [PATCH 0/2] Avoid costly vertex staging buffer

2019-04-15 Thread Alyssa Rosenzweig
y for user pointers). Performance is helped dramatically :) Alyssa Rosenzweig (2): panfrost: Track BO lifetime with jobs and reference counts panfrost: Fixup vertex offsets to prevent shadow copy src/gallium/drivers/panfrost/pan_context.c | 137 +++- src/gallium/drivers/pan

Re: [Mesa-dev] [PATCH] panfrost: Fix ->set_vertex_buffers() for partial vertex bufs updates

2019-04-15 Thread Alyssa Rosenzweig
The patches I just posted to the list conflict with this but I think do what you want. Could you try those? Thanks, -AR ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 1/2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-16 Thread Alyssa Rosenzweig
> > diff --git a/src/gallium/drivers/panfrost/pan_job.c > > b/src/gallium/drivers/panfrost/pan_job.c > > index 66a8b0d4b07..6c68575158f 100644 > > --- a/src/gallium/drivers/panfrost/pan_job.c > > +++ b/src/gallium/drivers/panfrost/pan_job.c > > @@ -27,6 +27,13 @@ > > #include "util/hash_table.h" >

Re: [Mesa-dev] [PATCH 1/2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-16 Thread Alyssa Rosenzweig
> loop in panfrost_emit_vertex_data() to do the right thing. But I think > we can get rid of ->vertex_buffer_count entirely and just do a > > for (int i = 0; i < ARRAY_SIZE(ctx->vertex_buffers); ++i) > > > } Sure, that's probably cleaner now that we're testing the mask. Will do for v2. __

Re: [Mesa-dev] [PATCH 1/2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-16 Thread Alyssa Rosenzweig
> Had a look at the cso code (more precisely > cso_{save,restore}_vertex_buffer0() and their users) and I'm not sure > util_set_vertex_buffers_mask() does what's expected by the CSO layer > (don't know who's right about the ->set_vertex_buffers() semantic > though). I'm not sure. Other drivers see

Re: [Mesa-dev] [PATCH 1/2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-16 Thread Alyssa Rosenzweig
> It's outside of the diff context, but we shouldn't use i as the index > for attrs[] as the first active vertex buffers might be != 0 and vb_mask > might be sparse (my patch had the same issue). Ack, good catch, thank you. Will address in next version. +1 _

Re: [Mesa-dev] [PATCH 1/2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-16 Thread Alyssa Rosenzweig
Gotcha, thank you! I'll fix this over. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Re: [Mesa-dev] [PATCH 1/2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-17 Thread Alyssa Rosenzweig
> I think the only (valid) reason not to use pipe_reference would be if > it was some code that might someday be useful for a vulkan driver. Good to know :) > (That said, maybe we should move more and more of gallium's helpful > util stuff out of gallium so they can be re-used across the mesa > t

[Mesa-dev] [PATCH v2] panfrost: Track BO lifetime with jobs and reference counts

2019-04-19 Thread Alyssa Rosenzweig
ertex buffer counting. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 54 +++ src/gallium/drivers/panfrost/pan_context.h | 7 +- src/gallium/drivers/panfrost/pan_drm.c | 6 ++ src/gallium/drivers/panfrost/pan_job.c | 75 +

Re: [Mesa-dev] [PATCH v2] [Panfrost] Adds Bifrost shader disassembler utility

2019-04-21 Thread Alyssa Rosenzweig
Hooray! Excited to see this in tree. Reviewed-by: Alyssa Rosenzweig I'll push this when I get a chance to sanity check (probably tomorrow) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev

[Mesa-dev] [PATCH 16/19] panfrost/midgard: Document sign-extension/zero-extension bits (vector)

2019-04-21 Thread Alyssa Rosenzweig
For floating point ops, these bits determine the "negate?" and "abs?" modifiers. For integer ops, it turns out they control how sign/zero extension work, useful for mixing types. Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/d

[Mesa-dev] [PATCH 18/19] panfrost/midgard: Implement copy propagation

2019-04-21 Thread Alyssa Rosenzweig
Most copy prop should occur at the NIR level, but we generate a fair number of moves implicitly ourselves, etc... long story short, it's a net win to also do simple copy prop + DCE on the MIR. As a bonus, this fixes the weird imov precision bug once and for good, I think. Signed-off-by: A

[Mesa-dev] [PATCH 07/19] panfrost/midgard: Don't try to inline constants on branches

2019-04-21 Thread Alyssa Rosenzweig
Along with a corresponding fix to the move elimination pass (not included here yet -- I just have it disabled for now), this will fix dEQP-GLES2.functional.shaders.loops.for_uniform_iterations.* Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 3

[Mesa-dev] [PATCH 11/19] panfrost/midgard: Dead code eliminate MIR

2019-04-21 Thread Alyssa Rosenzweig
We reshuffle the existing "dead move elimination" pass into a generic dead code elimination layer, fixing bugs incurred with looping in the process. Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 25 --- 1 file changed, 10 inserti

[Mesa-dev] [PATCH 12/19] panfrost/midgard: Track loop depth

2019-04-21 Thread Alyssa Rosenzweig
This fixes nested loops. Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/midgard_compile.c | 17 ++--- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard

[Mesa-dev] [PATCH 19/19] panfrost/midgard: Optimize MIR in progress loop

2019-04-21 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/midgard_compile.c | 16 +++- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c index

[Mesa-dev] [PATCH 03/19] panfrost/midgard: Implement indirect loads of varyings/UBOs

2019-04-21 Thread Alyssa Rosenzweig
This adds preliminary support for indirect loads of varying arrays and uniform arrays, bringing a few new tests in shader.indexing.* to passing, although there remains a number of cases still missing. Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 90

[Mesa-dev] [PATCH 15/19] panfrost/midgard: Update integer op list

2019-04-21 Thread Alyssa Rosenzweig
In the future, we might want to switch to a table-based approach, but for now, at least have it current. Signed-off-by: Alyssa Rosenzweig --- .../drivers/panfrost/midgard/helpers.h| 31 +-- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/gallium

[Mesa-dev] [PATCH 01/19] panfrost/mdg/disasm: Print raw varying_parameters

2019-04-21 Thread Alyssa Rosenzweig
found in shaders that spill registers.) Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/disassemble.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/panfrost/midgard/disassemble.c b/src/gallium/drivers/panfrost/midgard

[Mesa-dev] [PATCH 05/19] panfrost/midgard: Remove useless MIR dump

2019-04-21 Thread Alyssa Rosenzweig
Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c index 1be96bc2eb9..f48e873a3f1 100644

[Mesa-dev] [PATCH 10/19] panfrost: Use actual imov instruction

2019-04-21 Thread Alyssa Rosenzweig
The bug this worked around is no longer applicable, it seems -- remove the hack that breaks more than it fixes. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers

[Mesa-dev] [PATCH 06/19] panfrost: Respect backwards branches in RA

2019-04-21 Thread Alyssa Rosenzweig
Fixes a bunch of issues with looping. Honestly, I'm not sure why loops worked at all before. Signed-off-by: Alyssa Rosenzweig --- .../panfrost/midgard/midgard_compile.c| 83 +++ 1 file changed, 69 insertions(+), 14 deletions(-) diff --git a/src/gallium/drivers/pan

[Mesa-dev] [PATCH 13/19] panfrost/midgard: Fix off-by-one in successor analysis

2019-04-21 Thread Alyssa Rosenzweig
This reduces register pressure substantially since we get smaller liveness ranges. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/midgard/midgard_compile.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/panfrost/midgard

<    2   3   4   5   6   7   8   9   10   >