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
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
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
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
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
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
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
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
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
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
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
> 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
> 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
> + [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
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
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
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
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
> 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
> 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
Should be "%" PRIx64, I think?
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Alyssa Rosenzweig
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
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
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
Reviewed-by: Alyssa Rosenzweig
Nice one :)
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
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
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
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
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
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
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
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
- 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
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
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
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
.
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
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
). 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
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
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
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
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
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
> 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
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
> + 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
> + 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
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
Gotcha!
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 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
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
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
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
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
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
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
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
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
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
> 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
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
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
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
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
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
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
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
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
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
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
> 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
> 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
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.
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
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 +-
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
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
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
> > 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"
>
> 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.
__
> 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
> 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
_
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
> 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
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 +
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
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
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
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
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
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
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
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
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
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
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
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
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
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
601 - 700 of 991 matches
Mail list logo