platform/upstream/mesa.git
2 years agomtypes: move gl_program to shader_types.h
Dave Airlie [Fri, 7 Jan 2022 04:45:12 +0000 (14:45 +1000)]
mtypes: move gl_program to shader_types.h

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agomtypes: move gl_linked_shader and gl_shader_program to new shader_types.h
Dave Airlie [Fri, 7 Jan 2022 04:26:08 +0000 (14:26 +1000)]
mtypes: move gl_linked_shader and gl_shader_program to new shader_types.h

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agomesa: move ast_to_hir.cpp off mtypes.h
Dave Airlie [Fri, 7 Jan 2022 04:23:06 +0000 (14:23 +1000)]
mesa: move ast_to_hir.cpp off mtypes.h

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agoglsl: move ast_function.cpp off mtypes.h
Dave Airlie [Fri, 7 Jan 2022 04:22:18 +0000 (14:22 +1000)]
glsl: move ast_function.cpp off mtypes.h

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agoglsl: avoid rebuilding builtin functions on mtypes.h changes.
Dave Airlie [Fri, 7 Jan 2022 04:19:53 +0000 (14:19 +1000)]
glsl: avoid rebuilding builtin functions on mtypes.h changes.

Restrict to when shader types or consts change

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agomesa: move some gl shader types to shader_types.h.
Dave Airlie [Fri, 7 Jan 2022 04:19:29 +0000 (14:19 +1000)]
mesa: move some gl shader types to shader_types.h.

This moves some of these to further removes mtypes.h from the GLSL compiler.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agoglsl: remove some deps on mtypes.h.
Dave Airlie [Fri, 7 Jan 2022 04:15:16 +0000 (14:15 +1000)]
glsl: remove some deps on mtypes.h.

This should reduce having to rebuild parts of the GLSL compiler
when mtypes.h changes.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agomesa/mtypes: move matrix enums to shader_enums.h
Dave Airlie [Fri, 7 Jan 2022 04:12:43 +0000 (14:12 +1000)]
mesa/mtypes: move matrix enums to shader_enums.h

These are used in the compiler backend also.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agomtypes: split gl extensions and consts out into a separate header
Dave Airlie [Thu, 6 Jan 2022 22:21:15 +0000 (08:21 +1000)]
mtypes: split gl extensions and consts out into a separate header

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agomesa: drop unused context parameter to shader program data reference.
Dave Airlie [Fri, 7 Jan 2022 03:31:55 +0000 (13:31 +1000)]
mesa: drop unused context parameter to shader program data reference.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agoglsl/parser: extract consts/exts/api out of context at start.
Dave Airlie [Fri, 7 Jan 2022 03:05:09 +0000 (13:05 +1000)]
glsl/parser: extract consts/exts/api out of context at start.

This stores these pointers separately. in theory now gl_context
can be made more opaque later, if we split header files ups.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14437>

2 years agomeson: Try to link all-targets module if Gallium OpenCL is enabled
Simon McVittie [Mon, 8 Nov 2021 13:14:59 +0000 (13:14 +0000)]
meson: Try to link all-targets module if Gallium OpenCL is enabled

If we don't do this, and we are statically linking LLVM
(-Dshared-llvm=disabled) while using a version of LLVM compiled for a
general-purpose distribution, then the link fails with undefined
references to the functions called by LLVMInitializeAllTargets().

Using a version of LLVM that was built specifically for Mesa will
sometimes mask this: if the only backends built into LLVM are backends
that we specifically link anyway, then the link will succeed.

According to commit 80817b6e "meson: Adjust Clover's required LLVM
modules", all-targets is not available when using CMake to locate LLVM,
so make it optional rather than mandatory.

This partially reverts commit 80817b6e344258ac9b955f824ebf9019a0fc1610.

Resolves: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3962
Resolves: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5609
Signed-off-by: Simon McVittie <smcv@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13720>

2 years agonir/opt_offsets: Use nir_ssa_scalar to chase offset additions.
Emma Anholt [Fri, 24 Dec 2021 01:28:40 +0000 (17:28 -0800)]
nir/opt_offsets: Use nir_ssa_scalar to chase offset additions.

For nir_to_tgsi, I want to be able to fold into the base from a vector
load_const, which the ad-hoc scalar chasing couldn't handle.

r300:
total instructions in shared programs: 1278731 -> 1256502 (-1.74%)
instructions in affected programs: 457909 -> 435680 (-4.85%)
total flowcontrol in shared programs: 8316 -> 8313 (-0.04%)
flowcontrol in affected programs: 5 -> 2 (-60.00%)
total temps in shared programs: 213687 -> 213774 (0.04%)
temps in affected programs: 13140 -> 13227 (0.66%)
total consts in shared programs: 952850 -> 949929 (-0.31%)
consts in affected programs: 386352 -> 383431 (-0.76%)

Fixes: #5781
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14309>

2 years agonir_to_tgsi: Use nir_opt_offsets for load_ubo_vec4.
Emma Anholt [Sun, 26 Dec 2021 17:07:32 +0000 (09:07 -0800)]
nir_to_tgsi: Use nir_opt_offsets for load_ubo_vec4.

This helps non-native-integers hardware where relative addressing of UBOs
has a constant offset field, and having addressing math (particularly for
D3D9) emitted as ALU ops ends up running us out of constants.  For
native-integers drivers (such as softpipe), the possible-overflow check
typically triggers and we end up not folding.

r300:
total instructions in shared programs: 1279167 -> 1278731 (-0.03%)
instructions in affected programs: 50834 -> 50398 (-0.86%)
total temps in shared programs: 213736 -> 213687 (-0.02%)
temps in affected programs: 598 -> 549 (-8.19%)
total consts in shared programs: 952973 -> 952850 (-0.01%)
consts in affected programs: 26776 -> 26653 (-0.46%)

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14309>

2 years agonir/opt_offsets: Also apply the max offset to top-level constant folding.
Emma Anholt [Tue, 11 Jan 2022 18:23:51 +0000 (10:23 -0800)]
nir/opt_offsets: Also apply the max offset to top-level constant folding.

nir_to_tgsi wants this for disabling folding into shared var accesses at
all.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14309>

2 years agonir/opt_offsets: Disable unsigned wrap checks on non-native-integers HW.
Emma Anholt [Thu, 30 Dec 2021 00:50:06 +0000 (16:50 -0800)]
nir/opt_offsets: Disable unsigned wrap checks on non-native-integers HW.

Since we don't have 32-bit ints, these checks for 32-bit unsigned wrapping
don't help and just reduce optimization opportunities (particularly for
DX9 addressing math).

Doesn't affect any current consumers.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14309>

2 years agonir: Add a .base field to nir_load_ubo_vec4.
Emma Anholt [Thu, 23 Dec 2021 23:21:30 +0000 (15:21 -0800)]
nir: Add a .base field to nir_load_ubo_vec4.

This lets nir-to-tgsi fold the constant offset of addressing calculations
into the CONST[] reference, which is important for D3D9-era compatibility:
HW of that age has limited uniform space, and if we do the addressing math
as math in the shader for dynamic indexing, the nir_load_consts end up
taking up uniforms we don't have available.

r300:
total instructions in shared programs: 1279699 -> 1279167 (-0.04%)
instructions in affected programs: 134796 -> 134264 (-0.39%)
total instructions in shared programs: 1279699 -> 1279167 (-0.04%)
instructions in affected programs: 134796 -> 134264 (-0.39%)
total temps in shared programs: 213912 -> 213736 (-0.08%)
temps in affected programs: 2166 -> 1990 (-8.13%)
total consts in shared programs: 953237 -> 952973 (-0.03%)
consts in affected programs: 45980 -> 45716 (-0.57%)

Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14309>

2 years agonir/lower_dynamic_bo_access: Use copy_inst_indices for our cloned instrs.
Emma Anholt [Thu, 23 Dec 2021 23:28:06 +0000 (15:28 -0800)]
nir/lower_dynamic_bo_access: Use copy_inst_indices for our cloned instrs.

The ad-hoc index duplication was missing setup of things like the ACCESS
or RANGE_BASE fields.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14309>

2 years agointel/brw: drop gl header from the brw backend.
Dave Airlie [Wed, 19 Jan 2022 03:30:29 +0000 (13:30 +1000)]
intel/brw: drop gl header from the brw backend.

This shouldn't be used anywhere now once we drop the GLbitfield64 types.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14605>

2 years agonir: remove gl.h include from nir headers.
Dave Airlie [Wed, 19 Jan 2022 03:23:32 +0000 (13:23 +1000)]
nir: remove gl.h include from nir headers.

This saves a lot of pointless gl.h includes across the board,
it moves the one place that needs GLenum into a separate file
only used in those passes that require it.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14605>

2 years agoincludes: add windows lean and mean guard.
Dave Airlie [Wed, 19 Jan 2022 07:42:04 +0000 (17:42 +1000)]
includes: add windows lean and mean guard.

When we drop gl.h some files pick up windows.h from here
without lean/mean and it causes conflicts.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14605>

2 years agomesa/*: add a shader primitive type to get away from GL types.
Dave Airlie [Wed, 19 Jan 2022 03:17:27 +0000 (13:17 +1000)]
mesa/*: add a shader primitive type to get away from GL types.

This creates an internal shader_prim enum, I've fixed up most
users to use it instead of GL types.

don't store the enum in shader_info as it changes size, and confuses
other things.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14605>

2 years agomesa/*: use an internal enum for tessellation primitive types.
Dave Airlie [Wed, 19 Jan 2022 01:43:15 +0000 (11:43 +1000)]
mesa/*: use an internal enum for tessellation primitive types.

To avoid dragging gl.h into places it has no business being,
defined tessellation primitive mode to an enum.

This has a lot of fallout all over the place.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14605>

2 years agollvmpipe: Add get_{driver,device}_uuid implementations
Stefan Brüns [Fri, 14 Jan 2022 12:49:49 +0000 (13:49 +0100)]
llvmpipe: Add get_{driver,device}_uuid implementations

Commit 9da15aa3aa94 ("llvmpipe: enable EXT_memory_object(_fd)") enabled
the extension, but left this unimplemented.

Leaving this unimplemented causes segfaults for anyone trying to retrieve
the UUIDs, as the calling code in the state tracker does not check if the
function is implemented. This affects e.g. current Wine versions.

Set the UUID to all zeros. Although this slightly violates the vulkan
specification (since 1.2.146), the UUIDs have to match the ones from
lavapipe (lvp_get_physical_device_properties_1_1).

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5865
Fixes: 9da15aa3aa94 ("llvmpipe: enable EXT_memory_object(_fd)")
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Reviewed-by: Dave Airlie airlied@redhat.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14558>

2 years agoamd: move uvd decode definitions to common place
Dave Airlie [Mon, 15 Nov 2021 03:02:29 +0000 (13:02 +1000)]
amd: move uvd decode definitions to common place

This just makes sharing these easier later.

Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14607>

2 years agoamd: move vcn decoding regs + structs to a common file.
Dave Airlie [Fri, 5 Nov 2021 03:52:57 +0000 (13:52 +1000)]
amd: move vcn decoding regs + structs to a common file.

This just moves the main regs + fw interface structs to a new shared
file.

Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14607>

2 years agoci: freedreno: Update a530 dEQP fail expectation list
Guilherme Gallo [Mon, 17 Jan 2022 02:52:16 +0000 (23:52 -0300)]
ci: freedreno: Update a530 dEQP fail expectation list

The test
`KHR-GLES31.core.shader_storage_buffer_object.basic-stdLayout_UBO_SSBO-case2-cs`
was failing even before the kernel uprev

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14548>

2 years agoci: Uprev Kernel to v5.16
Guilherme Gallo [Wed, 12 Jan 2022 17:49:10 +0000 (14:49 -0300)]
ci: Uprev Kernel to v5.16

Changes in freedreno devices:

- Adding CONFIG_DRM_PANEL_EDP, split from CONFIG_DRM_PANEL_SIMPLE

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14548>

2 years agomeson: tlsdesc: minor reformatting, add comments
Alex Xu (Hello71) [Thu, 2 Dec 2021 23:34:56 +0000 (18:34 -0500)]
meson: tlsdesc: minor reformatting, add comments

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14027>

2 years agoradv: fix missing destroy for the overallocation mutex
Samuel Pitoiset [Wed, 19 Jan 2022 09:35:56 +0000 (10:35 +0100)]
radv: fix missing destroy for the overallocation mutex

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14611>

2 years agovulkan/runtime: fix accessing NULL pointers detected by UBSAN
Samuel Pitoiset [Wed, 19 Jan 2022 13:37:54 +0000 (14:37 +0100)]
vulkan/runtime: fix accessing NULL pointers detected by UBSAN

Fixes: 7a84314c12a ("vulkan/runtime: Add sparse bind support.")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14619>

2 years agoAdd new rules to .gitattributes
Marcin Ślusarz [Thu, 8 Jul 2021 09:09:35 +0000 (11:09 +0200)]
Add new rules to .gitattributes

This will make sure that all source files have native line endings
when checked out locally.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11779>

2 years agoradv/ci: add line endings exception for files generated with wine
Marcin Ślusarz [Wed, 19 Jan 2022 10:55:54 +0000 (11:55 +0100)]
radv/ci: add line endings exception for files generated with wine

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11779>

2 years agoci/windows: normalize line endings
Marcin Ślusarz [Wed, 19 Jan 2022 10:53:39 +0000 (11:53 +0100)]
ci/windows: normalize line endings

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11779>

2 years agomicrosoft/compiler: normalize line endings
Marcin Ślusarz [Wed, 19 Jan 2022 10:52:10 +0000 (11:52 +0100)]
microsoft/compiler: normalize line endings

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11779>

2 years agofreedreno/rnn: normalize line endings in rules-ng.xsd
Marcin Ślusarz [Thu, 8 Jul 2021 09:54:31 +0000 (11:54 +0200)]
freedreno/rnn: normalize line endings in rules-ng.xsd

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11779>

2 years agoaco: use p_extract for SGPR nir_op_unpack_half_2x16_split_y
Rhys Perry [Tue, 18 Jan 2022 13:29:59 +0000 (13:29 +0000)]
aco: use p_extract for SGPR nir_op_unpack_half_2x16_split_y

fossil-db (Sienna Cichlid):
Totals from 7264 (5.40% of 134627) affected shaders:
VGPRs: 548152 -> 548184 (+0.01%)
SpillSGPRs: 7615 -> 7607 (-0.11%)
CodeSize: 71025152 -> 70993036 (-0.05%); split: -0.05%, +0.00%
Instrs: 13386799 -> 13298580 (-0.66%); split: -0.66%, +0.00%
Latency: 177464497 -> 177091693 (-0.21%); split: -0.21%, +0.00%
InvThroughput: 32185148 -> 32151873 (-0.10%); split: -0.10%, +0.00%
VClause: 233167 -> 233166 (-0.00%); split: -0.00%, +0.00%
SClause: 468423 -> 468426 (+0.00%); split: -0.00%, +0.01%
Copies: 950727 -> 942753 (-0.84%); split: -0.85%, +0.02%
Branches: 455919 -> 455901 (-0.00%); split: -0.01%, +0.00%

fossil-db (Vega):
Totals from 7264 (5.39% of 134762) affected shaders:
SGPRs: 738800 -> 738816 (+0.00%)
VGPRs: 550264 -> 550344 (+0.01%)
SpillSGPRs: 11149 -> 11157 (+0.07%)
CodeSize: 67487104 -> 67466772 (-0.03%); split: -0.03%, +0.00%
Instrs: 13142106 -> 13061767 (-0.61%)
Latency: 209278575 -> 208438854 (-0.40%); split: -0.40%, +0.00%
InvThroughput: 81486405 -> 81265773 (-0.27%); split: -0.27%, +0.00%
VClause: 222293 -> 222291 (-0.00%); split: -0.00%, +0.00%
SClause: 447783 -> 447800 (+0.00%); split: -0.00%, +0.01%
Copies: 1243760 -> 1238842 (-0.40%); split: -0.43%, +0.03%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14592>

2 years agoaux/trace: cosmetic cleanup
Matti Hamalainen [Wed, 12 May 2021 10:07:23 +0000 (13:07 +0300)]
aux/trace: cosmetic cleanup

Fix up some function argument indentation alignments and
adjust few other small cosmetics.

Signed-off-by: Matti Hamalainen <ccr@tnsp.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14398>

2 years agoaux/trace: implement missing trace calls
Matti Hamalainen [Wed, 12 May 2021 09:52:58 +0000 (12:52 +0300)]
aux/trace: implement missing trace calls

Some call traces (resource_from_handle, resource_get_handle and
resource_get_param) were TODO, so implement them while we are here.

Signed-off-by: Matti Hamalainen <ccr@tnsp.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14398>

2 years agoaux/trace: print enum names instead of integer values in gallium traces
Matti Hamalainen [Thu, 9 Dec 2021 18:38:17 +0000 (20:38 +0200)]
aux/trace: print enum names instead of integer values in gallium traces

Having only magic constants instead of human-readable strings in
traces not only hinders readability, but also may affect trace
comparision of old and new traces if new enums have been added
or modified (thus possibly changing the values of existing ones.)

So we implement printing of enum names as strings instead.
In order to have those strings, we need to add some new helper
functions, which we will automatically generate from header file
src/gallium/include/pipe/p_defines.h via a new Python script
enums2names.py.

We also bolt this all into the Meson build system.

Link: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4609
Signed-off-by: Matti Hamalainen <ccr@tnsp.org>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14398>

2 years agogenxml: reduce amount of generated code
Lionel Landwerlin [Sat, 8 Jan 2022 11:52:27 +0000 (13:52 +0200)]
genxml: reduce amount of generated code

$ wc -l build/src/intel/genxml/genX_bits.h

250581 build/src/intel/genxml/genX_bits.h (before)
5748 build/src/intel/genxml/genX_bits.h   (after)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14469>

2 years agoanv: fix missing descriptor copy of bufferview/surfacestate content
Lionel Landwerlin [Mon, 17 Jan 2022 12:02:30 +0000 (14:02 +0200)]
anv: fix missing descriptor copy of bufferview/surfacestate content

When doing copies of descriptors from one set to another, that contain
either a UNIFORM_BUFFER or STORAGE_BUFFER, both the buffer view &
surface state are allocated from the source descriptor. Therefore we
need to copy their content otherwise we could run into lifecycle
issues when the source descriptor is destroyed.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14585>

2 years agointel/dev: fix ppipe_mask computation
Lionel Landwerlin [Wed, 19 Jan 2022 09:03:39 +0000 (11:03 +0200)]
intel/dev: fix ppipe_mask computation

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e86ce98c6a08 ("intel/devinfo: deal with i915 topology query change")
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14608>

2 years agomeson: add check kwarg to run_command
Thomas H.P. Andersen [Tue, 18 Jan 2022 23:59:39 +0000 (00:59 +0100)]
meson: add check kwarg to run_command

run_command will change the default for the check arg to true
in the future. If it is true then meson will exit if the command
fails. It must be false here as we check the return code to
provide a meaningful error message.

With meson 0.61 we get the following warning:

WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14602>

2 years agozink: add deqp ci baseline for nv
Mike Blumenkrantz [Tue, 18 Jan 2022 20:28:07 +0000 (15:28 -0500)]
zink: add deqp ci baseline for nv

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14603>

2 years agozink: update nv ci baseline
Mike Blumenkrantz [Tue, 18 Jan 2022 20:27:19 +0000 (15:27 -0500)]
zink: update nv ci baseline

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14603>

2 years agolavapipe: replace hard pointer calcs in push descriptors with ptralloc
Mike Blumenkrantz [Thu, 4 Nov 2021 16:33:45 +0000 (12:33 -0400)]
lavapipe: replace hard pointer calcs in push descriptors with ptralloc

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13678>

2 years agolavapipe: replace hard pointer calcs in dynamic render with ptralloc
Mike Blumenkrantz [Thu, 4 Nov 2021 16:33:45 +0000 (12:33 -0400)]
lavapipe: replace hard pointer calcs in dynamic render with ptralloc

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13678>

2 years agoutil: add ptralloc
Mike Blumenkrantz [Thu, 4 Nov 2021 16:23:05 +0000 (12:23 -0400)]
util: add ptralloc

many times it will be the case that an allocation for a block of data
needs to be done in one alloc() call such that the members of a struct as well
as some extra trailing data are all in the same allocation like

```
struct Test {
  unsigned a[4];
  unsigned c;
};
unsigned *b; //ptr to uint[8]
```

should be allocated as a single block of (13 * sizeof(unsigned)) memory using
C pointer offsets to allocate the memory as

```
| Test | b |
```

with something like

```
struct Test *t = malloc(sizeof(struct Test) + (8 * sizeof(unsigned)));
```

and then set `b` with

```
t->b = ((uint8_t*)t) + sizeof(struct Test);
```

this is annoying, awful to read, and (at least for dum-dums like me) prone to errors,
however, so having some utility functions which can deliver the same
functionality with better readability helps out this case by transforming it to

```
unsigned *b;
void **ptrs[] = {(void*)&b};
size_t sizes[] = {8 * sizeof(unsigned));
struct Test *t = ptralloc(sizeof(struct Test), 1, sizes, ptrs);
```

where `b` is now set to the appropriate offset in memory

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13678>

2 years agoiris: Do primitive ID overrides in 3DSTATE_SBE not SBE_SWIZ
Kenneth Graunke [Tue, 14 Dec 2021 23:25:26 +0000 (15:25 -0800)]
iris: Do primitive ID overrides in 3DSTATE_SBE not SBE_SWIZ

Broadwell introduced new fields in 3DSTATE_SBE which allow us to ask
the hardware to override Primitive ID for us, rather than requiring us
to turn on attribute swizzling and specify per-attribute overrides in
3DSTATE_SBE_SWIZ.  We unconditionally enable attribute swizzling today,
but this is a step toward letting us think about disabling it in the
future.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14210>

2 years agoiris: Use prog_data->inputs rather than shader info in SBE code.
Kenneth Graunke [Wed, 15 Dec 2021 08:53:49 +0000 (00:53 -0800)]
iris: Use prog_data->inputs rather than shader info in SBE code.

This should be the same thing, but requires looking up less data.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14210>

2 years agointel/fs: Reuse the same FS input slot for VUE header fields.
Kenneth Graunke [Wed, 15 Dec 2021 08:35:40 +0000 (00:35 -0800)]
intel/fs: Reuse the same FS input slot for VUE header fields.

VARYING_SLOT_{VIEWPORT,LAYER,PSIZ} all live in the same VUE header slot,
and the FS is already set up to read the x/y/z/w component of that vec4.

However, we were setting up the SBE to pass each of those items as a
separate FS input, so hypothetically if a shader read all three, we
would burn 3 FS inputs with redundant data.  Not only was this passing
extra data to the FS, but it would count as extra input slots for the
"Do we have 16 or fewer attributes?" check for using SBE swizzling to
rearrange them in a convenient manner.

Now we make them share a single FS attribute and only count them once.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14210>

2 years agor300: Add consts (uniforms) count to the shader-db output.
Emma Anholt [Sun, 26 Dec 2021 17:23:39 +0000 (09:23 -0800)]
r300: Add consts (uniforms) count to the shader-db output.

This is one of the critical metrics for this driver.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14600>

2 years agor300: Drop unused r300_get_stats() call.
Emma Anholt [Sun, 26 Dec 2021 17:20:17 +0000 (09:20 -0800)]
r300: Drop unused r300_get_stats() call.

Unused since we switched to shader-db.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14600>

2 years agointel/gem: Return length from intel_i915_query_alloc
Jordan Justen [Sat, 30 Oct 2021 10:25:09 +0000 (03:25 -0700)]
intel/gem: Return length from intel_i915_query_alloc

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Recalculate max_cs_threads after applying hwconfig changes
Jordan Justen [Fri, 7 Jan 2022 01:30:21 +0000 (17:30 -0800)]
intel/dev: Recalculate max_cs_threads after applying hwconfig changes

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Apply settings from hwconfig if devinfo::apply_hwconfig is set
Jordan Justen [Sat, 30 Oct 2021 20:41:38 +0000 (13:41 -0700)]
intel/dev: Apply settings from hwconfig if devinfo::apply_hwconfig is set

During debug builds, if apply_hwconfig is not set, then the devinfo
value will be compared with the hwconfig value. If they don't match
then a warning message will be logged to stderr.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Set intel_device_info::apply_hwconfig for DG2
Jordan Justen [Sat, 8 Jan 2022 08:13:34 +0000 (00:13 -0800)]
intel/dev: Set intel_device_info::apply_hwconfig for DG2

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Add intel_device_info::apply_hwconfig
Jordan Justen [Sat, 8 Jan 2022 08:01:55 +0000 (00:01 -0800)]
intel/dev: Add intel_device_info::apply_hwconfig

This will be used to conditionally use hwconfig values to update
intel_device_info at runtime.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Print urb size with intel_dev_info
Jordan Justen [Fri, 7 Jan 2022 01:25:46 +0000 (17:25 -0800)]
intel/dev: Print urb size with intel_dev_info

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Add intel_print_hwconfig_table()
Jordan Justen [Sat, 30 Oct 2021 20:41:38 +0000 (13:41 -0700)]
intel/dev: Add intel_print_hwconfig_table()

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Add intel_hwconfig_types.h from random post on the internet
Jordan Justen [Sat, 30 Oct 2021 10:25:09 +0000 (03:25 -0700)]
intel/dev: Add intel_hwconfig_types.h from random post on the internet

There is no spec for any of this, but we'll need this to interpret a
blob that the kernel is giving us.

Ref: https://lists.freedesktop.org/archives/intel-gfx/2021-September/277488.html
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agoanv,blorp,crocus,i965,iris: Use devinfo->max_threads_per_psd for gfx8+
Jordan Justen [Tue, 2 Nov 2021 00:22:51 +0000 (17:22 -0700)]
anv,blorp,crocus,i965,iris: Use devinfo->max_threads_per_psd for gfx8+

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agointel/dev: Add max_threads_per_psd field to devinfo for gfx8+
Jordan Justen [Tue, 2 Nov 2021 00:20:20 +0000 (17:20 -0700)]
intel/dev: Add max_threads_per_psd field to devinfo for gfx8+

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13866>

2 years agor300: fix translate_LRP
Pavel Ondračka [Tue, 18 Jan 2022 15:58:36 +0000 (16:58 +0100)]
r300: fix translate_LRP

This was broken by 7daba1fe6544309b02d09e0710a9159049fb8cfa

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14596>

2 years agosvga: enable GL43 on SVGA GL43 capable device
Neha Bhende [Thu, 16 Dec 2021 23:33:25 +0000 (15:33 -0800)]
svga: enable GL43 on SVGA GL43 capable device

This patch enables GL43 feature for VMware's future GL43 capable
SVGA device.

Tested with various GL43 apps.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14270>

2 years agosvga: add GL43 resource validation at draw time
Neha Bhende [Thu, 16 Dec 2021 23:07:58 +0000 (15:07 -0800)]
svga: add GL43 resource validation at draw time

This patch adds GL43 tracked states stack and supports GL43 resource
validation at draw time. This patch is squash of in house patches
to support GL43 on VMware driver.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14270>

2 years agosvga: shader translation for compute, image views and shader buffers
Neha Bhende [Thu, 16 Dec 2021 22:52:26 +0000 (14:52 -0800)]
svga: shader translation for compute, image views and shader buffers

This patch handles shader translation for compute, image views and shader
buffers and updates the corresponding shader compile keys.
It also includes support of using shader raw buffer for shader buffer used
as constant buffer.
This patch is squash of numerous in house patches.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
v2: As pointed out by Thomas, fix revert of 64292c0f caused by this patch.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14270>

2 years agosvga: Add support for compute shader, shader buffers and image views
Neha Bhende [Thu, 16 Dec 2021 00:36:39 +0000 (16:36 -0800)]
svga: Add support for compute shader, shader buffers and image views

This commit is squash of commits which handles resource creation and management
for compute shader, shader buffers and image views. It creates uavs for shader
buffers and image views.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14270>

2 years agotgsi: Add hw_atomic_declared in tgsi_info
Neha Bhende [Thu, 16 Dec 2021 01:01:56 +0000 (17:01 -0800)]
tgsi: Add hw_atomic_declared in tgsi_info

This patch also adds hw_atomic_declared info in tgsi_info.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14270>

2 years agosvga: Add utility to check for GL43 support
Neha Bhende [Thu, 16 Dec 2021 00:44:44 +0000 (16:44 -0800)]
svga: Add utility to check for GL43 support

GL43 support in SVGA driver requires vmwgfx kernel version 2.20 and
GL43 capable SVGA device.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14270>

2 years agosvga: Add GL43 commands support
Neha Bhende [Thu, 16 Dec 2021 00:40:01 +0000 (16:40 -0800)]
svga: Add GL43 commands support

This patch updates SVGA header files and adds support for uav related commands.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14270>

2 years agozink: enable EXT_external_objects pipe caps
Mike Blumenkrantz [Tue, 11 Jan 2022 18:58:44 +0000 (13:58 -0500)]
zink: enable EXT_external_objects pipe caps

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14498>

2 years agozink: implement external memory object resource handling
Mike Blumenkrantz [Tue, 11 Jan 2022 18:57:59 +0000 (13:57 -0500)]
zink: implement external memory object resource handling

this is super simple and can almost fully reuse the existing codepaths

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14498>

2 years agozink: implement GL semaphores
Mike Blumenkrantz [Tue, 11 Jan 2022 18:57:00 +0000 (13:57 -0500)]
zink: implement GL semaphores

this is basically just a wrapper around vulkan semaphores, so it maps
fairly well

the existing fence function was a big ??? and should never have been triggered
like it was

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14498>

2 years agozink: add driver/device uuid screen hooks
Mike Blumenkrantz [Tue, 11 Jan 2022 18:56:03 +0000 (13:56 -0500)]
zink: add driver/device uuid screen hooks

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14498>

2 years agozink: add VK_KHR_external_memory_capabilities to instance exts
Mike Blumenkrantz [Tue, 11 Jan 2022 18:55:21 +0000 (13:55 -0500)]
zink: add VK_KHR_external_memory_capabilities to instance exts

the props for this are weird so they have to be fetched "manually"

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14498>

2 years agozink: add VK_KHR_external_semaphore_fd to device exts
Mike Blumenkrantz [Tue, 11 Jan 2022 18:54:49 +0000 (13:54 -0500)]
zink: add VK_KHR_external_semaphore_fd to device exts

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14498>

2 years agoiris: Use mi_builder for load/store reg/mem/imm functions
Jordan Justen [Fri, 5 Nov 2021 07:18:35 +0000 (00:18 -0700)]
iris: Use mi_builder for load/store reg/mem/imm functions

Ref: 06cf838cbdc ("intel/mi_builder: Support gen11 command-streamer based register offsets")
Ref: 6ffdcc335ee ("iris: Use mi_builder in iris_load_indirect_location()")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14340>

2 years agoiris: Use mi_builder to set 3DPRIM registers for draws
Jordan Justen [Fri, 5 Nov 2021 06:07:26 +0000 (23:07 -0700)]
iris: Use mi_builder to set 3DPRIM registers for draws

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14340>

2 years agocrocus: only clamp point size on last stage.
Dave Airlie [Thu, 30 Dec 2021 23:42:11 +0000 (09:42 +1000)]
crocus: only clamp point size on last stage.

This fixes a regression in tests that pass unclamped point size
values between stages.

This keeps xfb broken since the real way it should work is to have
the hw clamp after xfb, but this seems the least evil path.

Fixes: 3077d9685682 ("crocus: Clamp VS point sizes to the HW limits as required.")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14359>

2 years agointel/compiler: add clamp_pointside to vs/tcs/tes keys.
Dave Airlie [Thu, 30 Dec 2021 23:41:33 +0000 (09:41 +1000)]
intel/compiler: add clamp_pointside to vs/tcs/tes keys.

This will be used by crocus and iris to clamp pointsizes only
on the last stage of the shader compile.

Fixes: 3077d9685682 ("crocus: Clamp VS point sizes to the HW limits as required.")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14359>

2 years agomesa/st: get rid of ST_CALLOC_STRUCT use CALLOC_STRUCT
Dave Airlie [Wed, 29 Dec 2021 00:34:45 +0000 (10:34 +1000)]
mesa/st: get rid of ST_CALLOC_STRUCT use CALLOC_STRUCT

Just tie in the CALLOC_STRUCT/FREE mechanism.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14325>

2 years agomesa/st/perfmon: rebalance CALLOC_STRUCT/FREE
Dave Airlie [Tue, 28 Dec 2021 23:41:01 +0000 (09:41 +1000)]
mesa/st/perfmon: rebalance CALLOC_STRUCT/FREE

this was using FREE but ST_CALLOC_STRUCT, so fix the other way.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14325>

2 years agomesa: rebalance the CALLOC_STRUCT/FREE force.
Dave Airlie [Tue, 28 Dec 2021 23:37:37 +0000 (09:37 +1000)]
mesa: rebalance the CALLOC_STRUCT/FREE force.

There were some CALLOC_STRUCT that were using free, rebalance this.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14325>

2 years agomesa/program: don't use CALLOC_STRUCT for instructions.
Dave Airlie [Tue, 28 Dec 2021 23:36:56 +0000 (09:36 +1000)]
mesa/program: don't use CALLOC_STRUCT for instructions.

Figuring out the frees here was too much for me.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14325>

2 years agofreedreno/ci: Fix dEQP tests expectations on A530
Cristian Ciocaltea [Tue, 18 Jan 2022 08:14:47 +0000 (10:14 +0200)]
freedreno/ci: Fix dEQP tests expectations on A530

Add a new entry to the 'fails' list.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agopanfrost/ci: Fix piglit tests expectations on G52
Cristian Ciocaltea [Tue, 18 Jan 2022 07:48:28 +0000 (09:48 +0200)]
panfrost/ci: Fix piglit tests expectations on G52

Remove the successful tests from the 'fails' list.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoiris/ci: Fix piglit tests expectations on amly
Cristian Ciocaltea [Tue, 18 Jan 2022 07:43:15 +0000 (09:43 +0200)]
iris/ci: Fix piglit tests expectations on amly

Found two tests that started to show a flaky behavior, although they are
not detected as such by the test runner. Depending on their presence in
the 'fails' list, they are reported as "UnexpectedPass" or "Fail".

Let's fix this by moving them to the 'flaky' list.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoiris/ci: Fix whl dEQP expectations
Cristian Ciocaltea [Mon, 17 Jan 2022 22:25:56 +0000 (00:25 +0200)]
iris/ci: Fix whl dEQP expectations

Remove the successful tests from the 'fails' list.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agovirgl/ci: Fix identification of dEQP binary paths
Cristian Ciocaltea [Tue, 4 Jan 2022 21:15:19 +0000 (23:15 +0200)]
virgl/ci: Fix identification of dEQP binary paths

In some cases the file paths passed to crosvm for execution do not point
to dEQP binaries, but can be wrapper scripts, like deqp-runner.sh.

Detect such cases and skip changing the working directory.

Additionally, use the POSIX compliant command substitution syntax
instead of the obsolete variant based on backquotes.

Fixes: 81f25d8f276 ("virgl/ci: Run each dEQP instance in its own VM")

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agovirgl/ci: Do not hide crosvm output messages
Cristian Ciocaltea [Tue, 4 Jan 2022 16:56:46 +0000 (18:56 +0200)]
virgl/ci: Do not hide crosvm output messages

In some corner cases like the kernel oops, we do not get the relevant
log messages from crosvm process to help with debugging.

Note there is currently a double redirection of its stdout stream, but
the content eventually ends up in /dev/null.

Let's fix this by redirecting both stdout and stderr streams to a
dedicated file, to avoid clobbering the output from the script/program
running inside crosvm. This is particularly required for the scenario
that involves deqp-runner starting crosvm via a *.toml suite.

Additionally, drop the unnecessary usage of 'stdbuf' and set the 'quiet'
kernel command-line parameter to get rid of the noise generated during
crosvm boot process.

Although not directly related, do some cleanup by removing the
temporary folder on script exit.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agovirgl/ci: Prevent static link of virglrenderer inside crosvm
Cristian Ciocaltea [Tue, 4 Jan 2022 11:20:59 +0000 (13:20 +0200)]
virgl/ci: Prevent static link of virglrenderer inside crosvm

Ensure virglrenderer library is built before crosvm in order to allow
dynamic linking. This is needed for the scenarios where a different
virglrenderer library must be provided before launching crosvm, e.g.:
the upcoming Virgl CI solution that shares Mesa CI containers.

Additionally, this provides the virgl_test_server binary which is
required by piglit-runner.sh and deqp-runner.sh scripts when using
the virpipe Gallium driver.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agovirgl/ci: Force crosvm error when exit code file is missing
Cristian Ciocaltea [Tue, 4 Jan 2022 10:39:14 +0000 (12:39 +0200)]
virgl/ci: Force crosvm error when exit code file is missing

crosvm-runner.sh doesn't correctly report the script execution status
if the exit code file is missing.

Fix this by returning 1 when there is no exit code available from the
script that was executed.

Fixes: 81f25d8f276 ("virgl/ci: Run each dEQP instance in its own VM")

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoci: Create results folder before starting virgl_test_server
Cristian Ciocaltea [Sun, 2 Jan 2022 23:11:20 +0000 (01:11 +0200)]
ci: Create results folder before starting virgl_test_server

Move the statement responsible for creating the results output path
before 'virgl_test_server' is started in 'piglit-runner.sh' script.

This ensures the server log file will be available in the pipeline job
artifacts archive.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoci: Do not remove cmake
Cristian Ciocaltea [Fri, 31 Dec 2021 12:41:41 +0000 (14:41 +0200)]
ci: Do not remove cmake

In order to enable container reuse in Virgl CI, keep 'cmake' in the
container.

Additionally, provide the 'check' utility.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoci: Support building and installing deqp-runner from source
Cristian Ciocaltea [Thu, 30 Dec 2021 20:55:33 +0000 (22:55 +0200)]
ci: Support building and installing deqp-runner from source

Add support for building and installing deqp-runner from a git source
repository to facilitate further development & testing of new features
or simply making use of the latest upstream changes which were not
already tagged as a new package version.

The git revision to be built must be specified by setting
'DEQP_RUNNER_GIT_REV' env variable. To specify a git tag name instead,
'DEQP_RUNNER_GIT_TAG' variable must be used. It is also possible to
indicate a custom git repository via 'DEQP_RUNNER_GIT_URL'.

If neither a git revision or tag name has been set, deqp-runner is
installed from the rust package registry (the default behavior).

v2: Make use of '--git' and '--rev' cargo args to automate the git
checkout operation (Rohan).

v3: Allow Git URL override by using the hardcoded URL only when
DEQP_RUNNER_GIT_URL is not already set.

v4: Override 'EXTRA_CARGO_ARGS' to optimize the script and avoid a
second call to 'cargo install'. Additionally, add support for
indicating git tags (Rohan).

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoci: Uprev deqp-runner to 0.11.0
Cristian Ciocaltea [Fri, 31 Dec 2021 00:51:38 +0000 (02:51 +0200)]
ci: Uprev deqp-runner to 0.11.0

The updated version offers, among others, improved logging support to
help debugging failing tests.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoci/piglit: Start vtest server if driver is set to virpipe
Rohan Garg [Mon, 13 Sep 2021 20:55:48 +0000 (22:55 +0200)]
ci/piglit: Start vtest server if driver is set to virpipe

This allows for running of piglit tests with vtest.

Signed-off-by: Rohan Garg <rohan.garg@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>

2 years agoci: Do not remove wget
Rohan Garg [Tue, 9 Nov 2021 22:55:52 +0000 (00:55 +0200)]
ci: Do not remove wget

Keep wget for reuse by Virgl CI downstream

Signed-off-by: Rohan Garg <rohan.garg@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
[cristian: Fix conflicts while rebasing on latest main]

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14413>