piglit:
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3
Christian Gmeiner (4):
etnaviv: implement ETC2 block patching for HALTI0
etnaviv: keep track of mapped bo address
etnaviv: hook-up etc2 patching
etnaviv: enable ETC2 texture compression support for HALTI0 GPUs
src/gallium
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_blt.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c
b/src/gallium/drivers/etnaviv/etnaviv_blt.c
index 52731a9c770..42190d75d4e 100644
--- a/src/gallium/drivers/etnaviv
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_rs.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c
b/src/gallium/drivers/etnaviv/etnaviv_rs.c
index fc4f65dbeee..a9d3872ad41 100644
--- a/src/gallium/drivers/etnaviv
Push this format to the pipe driver unchanged.
Signed-off-by: Christian Gmeiner
---
include/GL/internal/dri_interface.h | 1 +
src/gallium/state_trackers/dri/dri2.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/include/GL/internal/dri_interface.h
b/include/GL/internal
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_screen.c | 12 +---
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c
b/src/gallium/drivers/etnaviv/etnaviv_screen.c
index de822fc85ca..ee32a499fb5 100644
ETC2 is supported with HALTI0, however that implementation is buggy
in hardware. The blob driver does per-block patching to work around
this. We need to swap colors for t-mode etc2 blocks.
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/Makefile.sources | 2 +
src/gallium
piglit:
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3
Christian Gmeiner (4):
etnaviv: implement ETC2 block patching for HALTI0
etnaviv: keep track of mapped bo address
etnaviv: hook-up etc2 patching
etnaviv: enable ETC2 texture compression support for HALTI0 GPUs
src/gallium
Saves us from calling etna_bo_map(..) and saves us from doing the
same offset calcs for map() and unmap() operations.
Signed-off-by: Christian Gmeiner
Reviewed-by: Lucas Stach
---
src/gallium/drivers/etnaviv/etnaviv_context.h | 1 +
.../drivers/etnaviv/etnaviv_transfer.c| 19
Changes v1 -> v2:
- Avoid the GPU sampling from the resource that gets mutated by the the
transfer map by setting DRM_ETNA_PREP_WRITE.
Signed-off-by: Christian Gmeiner
---
.../drivers/etnaviv/etnaviv_resource.c| 3 +
.../drivers/etnaviv/etnaviv_resource.h|
ETC2 is supported with HALTI0, however that implementation is buggy
in hardware. The blob driver does per-block patching to work around
this. We need to swap colors for t-mode etc2 blocks.
Changes v2 -> v3:
- Drop redundant format check
Signed-off-by: Christian Gmeiner
Acked-by: Lucas St
Saves us from calling etna_bo_map(..) and saves us from doing the
same offset calcs for map() and unmap() operations.
Signed-off-by: Christian Gmeiner
Reviewed-by: Lucas Stach
---
src/gallium/drivers/etnaviv/etnaviv_context.h | 1 +
.../drivers/etnaviv/etnaviv_transfer.c| 19
piglit:
spec/!opengl es 3.0/oes_compressed_etc2_texture-miptree_gles3
Christian Gmeiner (4):
etnaviv: implement ETC2 block patching for HALTI0
etnaviv: keep track of mapped bo address
etnaviv: hook-up etc2 patching
etnaviv: enable ETC2 texture compression support for HALTI0 GPUs
src/gallium
ation why DRM_ETNA_PREP_WRITE is needed
Signed-off-by: Christian Gmeiner
---
.../drivers/etnaviv/etnaviv_resource.c| 3 +
.../drivers/etnaviv/etnaviv_resource.h| 5 ++
.../drivers/etnaviv/etnaviv_transfer.c| 56 +++
3 files changed, 64 insertions(+)
diff --git a/sr
Signed-off-by: Christian Gmeiner
Reviewed-by: Lucas Stach
---
src/gallium/drivers/etnaviv/etnaviv_screen.c | 12 +---
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c
b/src/gallium/drivers/etnaviv/etnaviv_screen.c
index
e define / enum / struct / whatever in, it will be forgotten
> to time.
Ok, thanks.
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
s from v4 -> v5:
- Fix coding style issues reported by Guido
Changes from v5 -> v6:
- Add missing locking in etna_transfer_map(..) (Boris)
Signed-off-by: Christian Gmeiner
Signed-off-by: Marek Vasut
Signed-off-by: Boris Brezillon
Tested-by: Marek Vasut
---
src/gallium/drivers/etnaviv/e
* `needle`, returns whether the modifier is found */
> +
> +static bool
> +drm_find_modifier(uint64_t needle, const uint64_t *haystack, unsigned count)
> +{
static inline bool
drm_find_modifier(..)
> +unsigned i;
> +
> +for (i = 0; i < count; i++) {
> +
;
> > ctx->dirty |= ETNA_DIRTY_DERIVE_TS;
> While the V6 of this patch [1] is now in mesa upstream, this hunk is
> missing from the V6 . Any special reason for that or is this just an
> omission ?
>
This and an other change was done in separates commits - see:
https://cgit.freedesktop.org/mesa/mesa/commit/?id=7244e768040859126a5b74023f587beaa8bef81c
https://cgit.freedesktop.org/mesa/mesa/commit/?id=c56e73449698c31fe72b99a95b7e4ecdb2985b73
So everything went in.
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
hat u_transfer_helper is fragile :)
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Am Fr., 1. März 2019 um 16:54 Uhr schrieb Christian Gmeiner
:
>
> Use u_transfer_helper_resource_create(..) instead which uses the
> resource_create(..) function specified in u_transfer_vtbl.
>
> Signed-off-by: Christian Gmeiner
> ---
> src/gallium/auxiliary/util/u_transfer
will actually support:
> various sorts of KMS displays with the renderonly layer used to attach a
> GPU.
I like the idea of this patch and it is good starting point torwards a
generic solution
for kms displays with the renderonly framework.
Reviewed-by: Christian Gm
Hi Lucas
Am Mo., 21. Jan. 2019 um 10:03 Uhr schrieb Lucas Stach :
>
> Hi Christian,
>
> first of all, thanks for figuring this out. This is really nice
> to finally know how it works.
>
> Am Montag, den 21.01.2019, 07:49 +0100 schrieb Christian Gmeiner:
> > Defines h
Am Mo., 21. Jan. 2019 um 10:10 Uhr schrieb Lucas Stach :
>
> Am Montag, den 21.01.2019, 07:50 +0100 schrieb Christian Gmeiner:
> > If the GPU supports linear sampling, linear addressing mode
> > will be used as default.
> >
> > > Signed-off-by: Christian Gmeiner
Hi Lucas,
Am Fr., 25. Jan. 2019 um 17:02 Uhr schrieb Lucas Stach :
>
> Hi Christian,
>
> Am Montag, den 21.01.2019, 07:50 +0100 schrieb Christian Gmeiner:
> > If the GPU supports linear sampling, linear addressing mode
> > will be used as default.
> >
> >
his
> is
> + * used in depth clipping computations
> + */
> +
> +nir_ssa_def *screen_space = nir_vec4(,
> + nir_channel(, screen, 0),
> + nir_channel(, screen, 1),
> + nir_channel
The GPU is able to sample from YUYV/UYVY textures directly.
Passes following piglits:
- ext_image_dma_buf_import-sample_yuv -fmt=YUYV
- ext_image_dma_buf_import-sample_yuv -fmt=UYVY
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_format.c | 2 +-
src/gallium
Now that we have the util function for the default values, we can get
rid of the boilerplate.
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_screen.c | 157 ---
1 file changed, 157 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c
Fixes following piglit and does not introduce any regressions.
spec@ext_packed_depth_stencil@fbo-depth-gl_depth24_stencil8-blit
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_rs.c | 14 +-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src
Clear w/ quad uses a normal draw which adds up to OQ. st/meta
uses set_active_query_state(..) to tell the driver to pause
queries in such cases.
Fixes spec@arb_occlusion_query@occlusion_query_meta_save piglit.
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_query.c
gt; Signed-off-by: Lucas Stach
Reviewed-by: Christian Gmeiner
> ---
> This only fixes the obvious issues. I still believe there are some
> GPU/CPU synchronization issues in this code, that need to be fixed
> separately.
What is your current test for synchronization correctness?
://gitlab.freedesktop.org/mesa/mesa/merge_requests/848
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Am Fr., 3. Mai 2019 um 12:05 Uhr schrieb Philipp Zabel :
>
> Without this gbm_bo_get_offset() can return 0 where it shouldn't.
Reviewed-by: Christian Gmeiner
> ---
> src/gallium/drivers/etnaviv/etnaviv_resource.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git
Found during code inspection.
Cc: mesa-sta...@lists.freedesktop.org
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_emit.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c
b/src/gallium/drivers/etnaviv
Move the calculation out of the compiler.
Signed-off-by: Christian Gmeiner
---
.../drivers/etnaviv/etnaviv_compiler.c| 28
.../drivers/etnaviv/etnaviv_compiler.h| 1 -
src/gallium/drivers/etnaviv/etnaviv_shader.c | 32 +--
3 files changed, 30
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_blt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c
b/src/gallium/drivers/etnaviv/etnaviv_blt.c
index 42190d75d4e..cb6e81999fc 100644
--- a/src/gallium
Hi Fabio,
Am Fr., 24. Mai 2019 um 13:10 Uhr schrieb Fabio Estevam :
>
> Hi Christian,
>
> On Fri, May 24, 2019 at 7:52 AM Christian Gmeiner
> wrote:
> >
> > Signed-off-by: Christian Gmeiner
>
> Maybe you could remove the '&& s/FALSE/false' from t
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_rs.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c
b/src/gallium/drivers/etnaviv/etnaviv_rs.c
index a9d3872ad41..e64babfdd0a 100644
--- a/src
This change adds the eir_optimize_nir(..) function which gets used
to optimize and transform a nir shader for our needs.
Besides this there are some other nir helpers for compiler options
and tgsi handling.
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir_nir.c | 131
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/eir_cmdline.c | 189 ++
src/gallium/drivers/etnaviv/meson.build | 20 +++
2 files changed, 209 insertions(+)
create mode 100644 src/gallium/drivers/etnaviv/eir_cmdline.c
diff --git a/src/gallium/drivers
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir.c | 239 ++
src/etnaviv/compiler/eir.h | 499
src/etnaviv/compiler/eir_uniform.c | 108 +
src/etnaviv/compiler/meson.build| 38 ++
src/etnaviv
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir.h| 3 +
src/etnaviv/compiler/eir_live_variables.c | 258 ++
src/etnaviv/compiler/meson.build | 1 +
.../compiler/tests/eir_live_variables.cpp | 162 +++
src/etnaviv
Some created shaders can contain instructions like:
mov t0 t0
This simple pass removes that kind of mov instructions.
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir_opt_peephole.c | 63 +
src/etnaviv/compiler/eir_optimize.c | 4 +-
src/etnaviv
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir.h | 3 +
src/etnaviv/compiler/eir_print.c | 222 +++
src/etnaviv/compiler/meson.build | 1 +
3 files changed, 226 insertions(+)
create mode 100644 src/etnaviv/compiler/eir_print.c
diff --git
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir_compiler.c | 61 ++
src/etnaviv/compiler/eir_compiler.h | 29 +
src/etnaviv/compiler/eir_compiler_nir.c | 1035 +++
src/etnaviv/compiler/eir_shader.c | 312 +++
src/etnaviv/compiler
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir_nir.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/etnaviv/compiler/eir_nir.c b/src/etnaviv/compiler/eir_nir.c
index 6e75f2c5fd8..a579037a667 100644
--- a/src/etnaviv/compiler/eir_nir.c
+++ b/src/etnaviv/compiler
he targets.
At the moment I am not sure how to move on form this point.
Thanks
PS: You can find this changes here too
https://github.com/austriancoder/mesa/commits/eir-v3
Christian Gmeiner (17):
etnaviv: add basic block based backend ir: eir
eir: add legalization
eir: add live ranges pass
This change preps etnaviv to be able to swap the used compiler
backend easily. It takes care of uniform stuff and the actual
creation of shader variants. In the long run - if one backend
won - we can remove this again.
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv
- if shader is empty add a NOP instruction
- avoid multiple uniform src for alu ops
- resolve jump target
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir.h | 3 +
src/etnaviv/compiler/eir_legalize.c | 177
src/etnaviv/compiler
Some unit tests would be great.
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir.h | 10 +-
src/etnaviv/compiler/eir_register_allocate.c | 176 ++-
2 files changed, 184 insertions(+), 2 deletions(-)
diff --git a/src/etnaviv/compiler/eir.h b/src
.
Signed-off-by: Philipp Zabel
Signed-off-by: Michael Tretter
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir.h | 4 +
src/etnaviv/compiler/eir_compiler.h | 41 +
src/etnaviv/compiler/eir_register_allocate.c | 179 +++
src/etnaviv/compiler
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/Makefile.sources | 2 +
src/gallium/drivers/etnaviv/etnaviv_eir.c| 454 +++
src/gallium/drivers/etnaviv/etnaviv_eir.h| 71 +++
src/gallium/drivers/etnaviv/etnaviv_screen.c | 15 +
src/gallium/drivers
Add a debug option ETNA_MESA_DEBUG="nir" that will cause the etnaviv
gallium pipe driver to advertise support and preference for NIR shaders.
Signed-off-by: Philipp Zabel
Signed-off-by: Michael Tretter
---
src/gallium/drivers/etnaviv/etnaviv_debug.h | 3 +++
Some operations are scalar and need special treatment. Those
are exp and log2.
dst := exp2(src2.x)
dst := log2(src2.x)
The result is broadcasted over all active destination components.
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir_nir.h| 3 +
.../compiler
Signed-off-by: Christian Gmeiner
---
src/etnaviv/compiler/eir.h | 3 ++
src/etnaviv/compiler/eir_compiler_nir.c | 6
src/etnaviv/compiler/eir_optimize.c | 48 +
src/etnaviv/compiler/eir_optimize.h | 31
src/etnaviv/compiler
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_context.c | 23 ++--
src/gallium/drivers/etnaviv/etnaviv_shader.c | 55 +--
2 files changed, 68 insertions(+), 10 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c
b/src/gallium
his out when
> allocating a new resource.
>
> Signed-off-by: Lucas Stach
Reviewed-by: Christian Gmeiner
> ---
> src/gallium/drivers/etnaviv/etnaviv_resource.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c
> b/src/gal
this patch-set?
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Am Fr., 12. Apr. 2019 um 19:38 Uhr schrieb Lucas Stach :
>
> Imported resources might not start at offset 0 into the buffer object.
> Make sure to remember the offset that is provided with the handle on
> import.
>
> Signed-off-by: Lucas Stach
Reviewed-by: Christian Gmei
andle this case seems limited, we only respect the flag when the
> resource isn't used for rendering.
>
> Signed-off-by: Lucas Stach
Reviewed-by: Christian Gmeiner
> ---
> src/gallium/drivers/etnaviv/etnaviv_resource.c | 8
> 1 file changed, 8 insertions(+)
>
> d
From: Lucas Stach
Imported resources might not start at offset 0 into the buffer object.
Make sure to remember the offset that is provided with the handle on
import.
Signed-off-by: Lucas Stach
Reviewed-by: Philipp Zabel
Reviewed-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv
Stach
Reviewed-by: Philipp Zabel
Reviewed-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_resource.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c
b/src/gallium/drivers/etnaviv/etnaviv_resource.c
index 83179d3cd08..77d027ac806
-up patch.
Tested with kmscube (nv12-1img).
Signed-off-by: Christian Gmeiner
---
.../drivers/etnaviv/etnaviv_clear_blit.c | 2 +-
src/gallium/drivers/etnaviv/etnaviv_format.c | 3 +
src/gallium/drivers/etnaviv/etnaviv_rs.c | 5 +
src/gallium/drivers/etnaviv/etnaviv_screen.c | 4
This patch series goes a complete different route then the one from
Lucas Stach. I am using the integrated YUV tiler instead of using
the 2D core for format conversion. I am reusing some patches from
Lucas and this series sits on-top of Lucas "st/dri: YUV" patches.
Christian
The GPU is able to sample from YUYV/UYVY textures directly.
Passes following piglits:
- ext_image_dma_buf_import-sample_yuv -fmt=YUYV
- ext_image_dma_buf_import-sample_yuv -fmt=UYVY
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_format.c | 2 +-
src/gallium
Update to etna_viv commit 1ccc35b.
Signed-off-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/hw/common.xml.h | 2 +-
.../drivers/etnaviv/hw/common_3d.xml.h| 2 +-
src/gallium/drivers/etnaviv/hw/state.xml.h| 4 +--
src/gallium/drivers/etnaviv/hw/state_3d.xml.h | 35
the
resource isn't used for rendering.
Signed-off-by: Lucas Stach
Reviewed-by: Philipp Zabel
Reviewed-by: Christian Gmeiner
---
src/gallium/drivers/etnaviv/etnaviv_resource.c | 8
1 file changed, 8 insertions(+)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c
b/src/gallium
f},
> +.clear_mode = VIVS_RS_CLEAR_CONTROL_MODE_DISABLED,
> +.width = blit_info->dst.box.width,
> +.height = blit_info->dst.box.height,
> + });
> +
> + /* The combined color/depth cache flush is required to avoid pixels
> stuck
> + * in the caches being flushed to the RS target. This seems to be some
> bug
> + * found on at least GC2000, with no other known workaround.
> + */
> + etna_set_state(ctx->stream, VIVS_GL_FLUSH_CACHE,
> + VIVS_GL_FLUSH_CACHE_COLOR | VIVS_GL_FLUSH_CACHE_DEPTH);
> + etna_stall(ctx->stream, SYNC_RECIPIENT_RA, SYNC_RECIPIENT_PE);
> + etna_set_state(ctx->stream, VIVS_TS_MEM_CONFIG, 0);
> + ctx->dirty |= ETNA_DIRTY_TS;
> + etna_submit_rs_state(ctx, _blit);
> +
> + /* flush now, so we can get rid of the temp BO right here */
> + etna_cmd_stream_flush(ctx->stream);
> + etna_bo_del(temp_bo);
> + }
> +
> return TRUE;
> }
> --
> 2.20.1
>
> ___
> etnaviv mailing list
> etna...@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/etnaviv
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Hi Lucas
>
> Am Mittwoch, den 24.04.2019, 08:36 +0200 schrieb Christian Gmeiner:
> > This patch series goes a complete different route then the one from
> > Lucas Stach. I am using the integrated YUV tiler instead of using
> > the 2D core for format conversion. I am r
Am Fr., 12. Apr. 2019 um 19:38 Uhr schrieb Lucas Stach :
>
> The new 2D YUV blit needs this in some cases, so make it available.
>
> Signed-off-by: Lucas Stach
Reviewed-by: Christian Gmeiner
> ---
> src/gallium/drivers/etnaviv/etnaviv_rs.c | 2 +-
> src/gallium/drivers
401 - 469 of 469 matches
Mail list logo