summaryrefslogtreecommitdiff
path: root/src/etnaviv
AgeCommit message (Collapse)AuthorFilesLines
2024-04-15etnaviv: ci: update expectation with fixed depth/stencil clearsLucas Stach1-2/+0
Now that we properly switch between fast/regular clears for depth/stencil surfaces as needed and fixed the resulting corner-case issues, there are two more passing dEQP tests. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28696>
2024-04-13etnaviv: drm: Remove fallback value for ETNA_GPU_NUM_CONSTANTSChristian Gmeiner1-4/+0
The kernel commit a8c21a5451d8 ("drm/etnaviv: add initial etnaviv DRM driver") has this fallback logic already. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: drm: Fill limitsChristian Gmeiner1-1/+58
Note: etna_gpu_get_param(..) will only fail if a wrong enum etna_param_id param value is passed. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: hwdb: Fill limitsChristian Gmeiner1-0/+20
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: common: Add some limit valuesChristian Gmeiner1-0/+25
These are loosely based on struct etna_specs. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: common: Add enum etna_core_typeChristian Gmeiner3-0/+22
We support the following two core types: GPU and NPU. Both are using the 3d pipe to submit work so the only way to differentiate is the nn core count. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: drm: Make use of hwdbChristian Gmeiner2-1/+11
If the kernel provides correct ID values query the hwdb. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: hwdb: Add etna_query_feature_db(..)Christian Gmeiner5-0/+153
This function is used to - find a database entry - fill our etna_device_info struct If no database entry is found we just return false. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: hwdb: Generate hwdb.hChristian Gmeiner1-0/+323
This python script does the following work: - For all gc_feature_database.h files - Translate the C Struct to Python - Store database entries - Create a merged struct - Transform all entires to the merged struct - Write a header that contains the merged struct and all entries Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: hwdb: Import gc_feature_database from STChristian Gmeiner1-0/+4291
This commit imports the gc_feature_database.h file from https://github.com/STMicroelectronics/gcnano-binaries/blob/gcnano-6.4.13-binaries/gcnano-driver-stm32mp/hal/kernel/inc/gc_feature_database.h git commit: 5d02efd5cb4cfa85307633891f3cf87550a8bc1d Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: hwdb: Import gc_feature_database from AmlogicChristian Gmeiner1-0/+6737
This commit imports the gc_feature_database.h from https://github.com/khadas/android_vendor_amlogic_common_npu/blob/khadas-vim4-r-64bit/hal/kernel/inc/gc_feature_database.h git commit: 9d81096a001af8a099ca767855d548983d037dd8 Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: hwdb: Import gc_feature_database from NXPChristian Gmeiner1-0/+24305
This commit imports the gc_feature_database.h file from https://github.com/nxp-imx/linux-imx/blob/lf-6.6.y/drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h git commit: ccf0a99701a701fb48a04e31ffe3f9d585a8374a Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: drm: Query some id values in etna_gpu_new(..)Christian Gmeiner2-3/+12
We want to fully initialise etna_device_info. We only query the kernel for these values if the drm driver is recent enough. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: drm: Initialize etna_core_info based on kernel featuresChristian Gmeiner1-0/+118
Query all the gpu features in etna_gpu_new(..) and update the feature bitset in etna_core_info accordingly. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: common: Add feature bitsetChristian Gmeiner2-1/+27
Extend struct etna_core_info with a feature bitset and some helper functions. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: Introduce etna_feature enumChristian Gmeiner1-0/+54
This etna_feature enum will be used as abstraction layer. We will add support for a hardware database - borrowed from the binary blob. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: Move hw header to common placeChristian Gmeiner8-0/+4066
I am planning to make use of these headers outside of the gallium driver. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: drm: Add etna_gpu_get_core_info(..)Christian Gmeiner2-0/+7
Makes it possible to access etna_core_info. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: drm: Make use of etna_core_infoChristian Gmeiner3-8/+9
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-13etnaviv: Introduce common etna_core_infoChristian Gmeiner4-0/+30
This struct will be used in different places outside of the gallium driver. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28574>
2024-04-09ci/etnaviv: Do not skip tex-miplevel piglitsChristian Gmeiner2-5/+0
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Acked-by: David Heidelberg <david.heidelberg@collabora.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28631>
2024-04-02ci: Nightly run expectations updateSergi Blanch Torne3-5/+22
Reviewer the results from the last nightly run completed using ci-collate tool (gl.fd.o/gfx-ci/ci-collate) with the 'patch' feature and a bit of human intervention, these are the changes in the expectations. Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com> Reviewed-by: Eric Engestrom <eric@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28350>
2024-03-27ci/etnaviv: Remove duplicatesChristian Gmeiner1-8/+0
cat src/etnaviv/ci/etnaviv-gc2000-flakes.txt | sed 's/[ \t]*$//' | sort | uniq -d spec@arb_depth_texture@depth-level-clamp spec@arb_depth_texture@fbo-depth-gl_depth_component24-blit spec@arb_pixel_buffer_object@texsubimage-depth-formats pbo spec@arb_texture_storage@texture-storage spec@arb_texture_storage@texture-storage@2D mipmap rendering spec@ext_packed_depth_stencil@fbo-depth-gl_depth24_stencil8-copypixels spec@nv_copy_image@nv_copy_image-simple --tex-to-tex spec@!opengl 1.1@depthstencil-default_fb-copypixels Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: David Heidelberg <david.heidelberg@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28416>
2024-03-25etnaviv: Move swizzle related macros to scr/etnavivChristian Gmeiner1-0/+20
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Add isa_assemble_instruction(..)Christian Gmeiner2-0/+25
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Add encode supportChristian Gmeiner2-0/+72
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Add rouding to etna_instChristian Gmeiner1-0/+1
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Make use of generated enumsChristian Gmeiner1-21/+23
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: Move struct etna_inst to src/etnavivChristian Gmeiner1-0/+66
We will use struct etna_inst as starting point for our new assembler. The goal is to do a smooth translation for the gallium driver. Also apply clang-format rules and use SPDX license tag. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Add an empty libetnaviv_encodeChristian Gmeiner2-0/+18
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Generate opcode enumChristian Gmeiner1-0/+13
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Generate c header containing enumsChristian Gmeiner2-0/+67
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-25etnaviv: isa: Add name attributesChristian Gmeiner1-5/+5
Generate better names for enum values. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28183>
2024-03-21etnaviv: isa: Define a dontcare bit in atomic instructionsChristian Gmeiner2-63/+22
Looks like it is the same as for ALU instructions: skpHp This simplifies the special atomic handling a lot. Seen on blob running a simple opencl shader on GC3000. __kernel void kern( __global int *a, __global int *b, __global int *result) { atomic_add(result, a[0]); } Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28272>
2024-03-21isaspec: deocde: Remove generic functions from public interfaceChristian Gmeiner2-9/+9
This will switch everyone to the isa specific functions. Fixes the output of etnaviv's pre_instr_cb callback if freedreno and etnaviv are build at the same time. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28176>
2024-03-21isaspec: decode: Add libisaspecChristian Gmeiner1-0/+1
Create a static library that just contains isa_print(..). We need to do this step to make lto happy. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28176>
2024-03-21etnaviv: isa: Rework meson dependency for libetnaviv_decodeChristian Gmeiner2-4/+14
Any component that links against libetnaviv_decode should not need to take care if the generated isa files exists. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Reviewed-by: Eric Engestrom <eric@igalia.com> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28176>
2024-03-19ci/etnaviv: update expectationsLucas Stach2-6/+0
Now that the negative lodbias bug is fixed we can expect tests using this to pass. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28224>
2024-03-14etnaviv/ci: Update xfiles based on nightly runGuilherme Gallo2-33/+3
Refer to: - https://gitlab.freedesktop.org/mesa/mesa/-/pipelines/1125483 Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28145>
2024-03-12etnaviv: isa: Support multiple encodings for texldbChristian Gmeiner1-1/+1
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Fix #instruction-tex-src0-src1-src2 bitsetChristian Gmeiner2-5/+5
src1 got wrong values. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Support multiple encodings for texldlChristian Gmeiner1-1/+44
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Support unary texkill instructionChristian Gmeiner1-0/+6
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Support unary branch instructionChristian Gmeiner1-0/+10
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Combine branch and branch_ifChristian Gmeiner1-11/+12
As we want to use the new asm as a drop-in replacement we need to combine branch and branch_if back to one bitset. This is caused by the fact that we need to replicate the defines in isa.xml.h. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Correct #instruction-alu-no-dst-has-src0-src1 expr nameChristian Gmeiner1-2/+2
This expression only checks if src0 and src1 are in use. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Correct #instruction-alu-no-dst-maybe-src1-src2 nameChristian Gmeiner1-2/+2
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Correct #instruction-cf-src1-src2 bitset nameChristian Gmeiner1-3/+3
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Correct SRC0_AMODEChristian Gmeiner1-17/+15
It is 3 bit long and not one. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>
2024-03-12etnaviv: isa: Move {TEX_SWIZ}Christian Gmeiner2-10/+10
Should have never been there. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27871>