Compare commits

..

342 Commits

Author SHA1 Message Date
Dylan Baker
15c8aeef1d VERSION: bump for 21.2.2 release 2021-09-21 09:52:44 -07:00
Dylan Baker
32cf8bc081 docs: add release notes for 21.2.2 2021-09-21 09:52:15 -07:00
Mike Blumenkrantz
a46d95bd70 zink: fix ZINK_MAX_DESCRIPTORS_PER_TYPE to stop exploding the stack
this isn't the max per type, it's the max that can be used for a type,
which is the max used by a shader stage * the number of shader stages

Cc: mesa-stable

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12829>
(cherry picked from commit a45c84f226)
2021-09-15 09:33:56 -07:00
Juan A. Suarez Romero
ddb5243ccd broadcom/compiler: force a last thrsw for spilling
As we don't know if we are going to have spilling or not, emit always a
last thrsw at the end of the shader.

If later we don't have spillings and we don't need that last thrsw, we
remove it and switch back to the previous one.

This way we ensure all the spilling happens always before the last
thrsw.

v2 (Juan):
 - Rework the code to force a last thrsw and remove later if no spilling

v3:
 - Merge functionality inside vir_emit_last_thrsw (Iago)
 - Add vir_restore_last_thrsw (Juan)

v4 (Iago):
 - Fix/add new comments
 - Rename variables/parameters

v5 (Iago):
 - Fix comments
 - Add assertion

Cc: mesa-stable
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4760
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12322>
(cherry picked from commit c98ddc778a)

Conflicts:
	src/broadcom/compiler/nir_to_vir.c
2021-09-15 09:33:22 -07:00
Samuel Pitoiset
bf7543fcef radv/llvm: fix using Wave32
The Wave32 pass manager has been removed a while ago.

Fixes: 94a1f45e15 ("ac/llvm: set target features per function instead of per target machine")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12833>
(cherry picked from commit 5eda8e5fe9)
2021-09-15 09:19:49 -07:00
Ian Romanick
910e3faa5c nir/lower_gs_intrinsics: Return progress if append_set_vertex_and_primitive_count makes progress
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes: 542d40d698 ("nir: Add new GS intrinsics that maintain a count of emitted vertices.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12802>
(cherry picked from commit edf357b233)
2021-09-15 09:19:47 -07:00
Dave Airlie
6222be278c crocus/gen7: add missing IVB/GT2 geom shader workaround.
Noticed this in passing.

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12847>
(cherry picked from commit 4149a60209)
2021-09-15 09:19:46 -07:00
Jordan Justen
11195ad7fe intel/isl: Enable MOCS 61 for external surfaces on TGL
Reworks:
 * Lionel/Francisco: Add comment

Cc: mesa-stable
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by:  Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12292>
(cherry picked from commit 333b2185d8)
2021-09-15 09:19:45 -07:00
Marek Olšák
87edf61fc7 radeonsi: strengthen the VGT_FLUSH condition in begin_new_gfx_cs
Cc: mesa-stable

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12812>
(cherry picked from commit a2a7610e1f)
2021-09-15 09:19:42 -07:00
Bas Nieuwenhuizen
656659a4cc nir: Avoid visiting instructions multiple times in nir_instr_free_and_dce.
Sadly need to poke a bit in the src internals to avoid using yet another
heap allocated datastructure.

Fixes: 5251548572 ("nir: Add a nir_instr_remove that recursively removes dead code.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5323
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12726>
(cherry picked from commit b05cd10b8e)
2021-09-15 09:19:39 -07:00
Dylan Baker
4a94de804d .pick_status.json: Update to 7244aa1980 2021-09-15 09:19:26 -07:00
Rhys Perry
289eb46bdd nir: fix serialization of loop/if control
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Fixes: e76ae39ae2 ("nir: add support for user defined select control")
Fixes: b56451f82c ("nir: add support for user defined loop control")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12778>
(cherry picked from commit c1f724b2b9)
2021-09-09 09:14:16 -07:00
Dylan Baker
38d30c07b8 .pick_status.json: Update to b58d6eaf11 2021-09-09 09:14:12 -07:00
Timur Kristóf
02252789d8 aco: Skip code paths to emit copies when there are no copies.
Found while running with libstdc++ debug mode.
Fixes the following:

Error: attempt to advance a dereferenceable (start-of-sequence)
iterator -1 steps, which falls outside its valid range.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12682>
(cherry picked from commit bb956464cb)
2021-09-08 14:25:31 -07:00
Timur Kristóf
a85cdda14b aco: Use Builder reference in emit_copies_block.
Found while running with libstdc++ debug mode.
Fixes the following:

Error: attempt to copy-construct an iterator from a singular iterator.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12682>
(cherry picked from commit 728ed892df)
2021-09-08 14:25:24 -07:00
Rhys Perry
0ff85a144b aco/spill: add temporary operands of exec phis to next_use_distances_end
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: dfb10e4f4b ("aco/spill: don't count phis as variable access")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12702>
(cherry picked from commit 54f83d718a)
2021-09-08 14:24:51 -07:00
Daniel Schürmann
a31df83f96 aco: fix p_insert lowering with 16bit sources
The previous lowering only wrote a single byte.

Fixes: 2f94353735 ('aco: add p_extract/p_insert')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12640>
(cherry picked from commit cc4682ed47)
2021-09-08 14:21:37 -07:00
Samuel Pitoiset
8b677626ef radv: fix determining the maximum number of waves that can use scratch
This estimation was incorrect, the number of waves doesn't only
depend of the number of VGPRs.
Though, {SPI,COMPUTE}_TMPRING_SIZE.WAVES should limit the number of
scratch waves in flight, not sure if limiting it really works.

This fixes a GPU hang with an upcoming game, and this might also
helps resolving some spurious random GPU hangs.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12700>
(cherry picked from commit b31994cf67)

Conflicts:
	src/amd/vulkan/radv_shader.c
2021-09-08 14:21:36 -07:00
Timur Kristóf
7e5083961d aco: Fix invalid usage of std::fill with std::array.
In this case std::array doesn't behave like a regular array, therefore
it is NOT okay to index it outside the array, even though std::fill
needs us to do so.

Change the syntax to do the same thing slightly differently,
and add an assertion to make sure the registers are always within
the array's bounds.

Closes: #5289
Fixes: 0e4747d3fb
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12664>
(cherry picked from commit 9d20cf2732)

Conflicts:
	src/amd/compiler/aco_optimizer_postRA.cpp
2021-09-08 14:19:15 -07:00
Corentin Noël
d3701f91bb glx: Prevent crashes when an extension isn't found
Avoid a NULL-pointer dereference.

Fixes: 2c8a85b712 ("glx: Stash a copy of the XExtCodes in the glx_display")
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12751>
(cherry picked from commit d326d32e24)
2021-09-08 11:27:45 -07:00
Marcin Ślusarz
d3f8c5ff90 glsl: break out early if compound assignment's operand errored out
Fixes compiler crashes on:

struct Foo
{
  float does_exist_member;
};

in vec2 tex;
out vec4 color;

void
main(void)
{
  Foo foo;

  foo.does_not_exist_member %= 3; /* or any of: <<=, >>=, &=, |=, ^= */
  color = vec4(tex.xy, tex.xy);
}

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
CC: mesa-stable
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12717>
(cherry picked from commit 30b2cc423c)
2021-09-08 11:27:45 -07:00
Marcin Ślusarz
5facfec845 glsl: propagate errors from *=, /=, +=, -= operators
Fixes compiler crash on:

void main()
{
    gl_FragColor = a += 1;
}

(a is not declared anywhere)

Found with AFL++.

Fixes: d1fa69ed61 ("glsl: do not attempt assignment if operand type not parsed correctly")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12717>
(cherry picked from commit 26302ccdc1)
2021-09-08 11:27:45 -07:00
Timothy Arceri
a290407077 glsl: fix variable scope for do-while loops
Without this the following code was successfully compiling.

   void main()
   {
      do
         int var_1 = 0;
      while (false);

      var_1++;
   }

Fixes: a87ac255cf ("Initial commit.  lol")

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12465>
(cherry picked from commit 52893327fb)
2021-09-08 11:27:45 -07:00
Timothy Arceri
d830feb827 glsl: handle scope correctly when inlining loop expression
We need to clone the previously evaluated loop expression when
inlining otherwise we will have conflicts with shadow variables
defined in deeper scopes.

Fixes: 5c02e2e2de ("glsl: Generate IR for switch statements")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5255

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12465>
(cherry picked from commit 174c057926)
2021-09-08 11:27:45 -07:00
Timothy Arceri
73d24f9fa8 glsl: fix variable scope for loop-expression
We need to evaluate the loop-expression of a for loop before
we evaluate the loop body otherwise we will find the wrong
variable for the following loop.

   int var_0 = 0;
   for(; var_0 < 10; var_0++) {
      const float var_0 = 1.0;
      gl_FragColor = vec4(0.0, var_0, 0.0, 0.0);
   }

Fixes: a87ac255cf ("Initial commit.  lol")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5262

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12465>
(cherry picked from commit 8bbbbb02cd)
2021-09-08 11:27:45 -07:00
Timothy Arceri
645ad452a6 mesa: fix mesa_problem() call in _mesa_program_state_flags()
Previously STATE_INTERNAL returned 0 for the unhandled states
but the outer switch throws the error for unhandled states.

Fixes: b4f3497786 ("mesa: remove STATE_INTERNAL")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5316

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12746>
(cherry picked from commit 732cd9db44)
2021-09-08 11:27:45 -07:00
Mike Blumenkrantz
c3da924b86 util/primconvert: force restart rewrites if original primtype wasn't supported
if we're doing a primtype change, the restart needs to be eliminated to
avoid losing restart data after the rewrite

Fixes: 583070748c ("util/primconvert: handle rewriting of prim-restart draws with unsupported primtype")

Acked-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12625>
(cherry picked from commit 5bb747abd9)
2021-09-08 11:27:45 -07:00
Emma Anholt
998766f6cc llvmpipe: Fix leak of CS local memory with 0 threads.
Fixes: bde08ce4d7 ("llvmpipe: handle compute shader launch with 0 threads")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12724>
(cherry picked from commit a83a2b980c)
2021-09-08 11:27:44 -07:00
Emma Anholt
cd6ef859f0 llvmpipe: Free CS shader images on context destroy.
Cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12724>
(cherry picked from commit dee8b50cad)
2021-09-08 11:27:44 -07:00
Connor Abbott
7ed05f3216 ir3/lower_pcopy: Set entry->done in the swap loop
We process all the remaining copy entries one-at-a-time when emitting
swaps, so normally we wouldn't need to care about whether the entry is
done, except that we need to look at the other entries to split them up
and we need to skip this when the copy to be split has already been
processed.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5307
Fixes: 0ffcb19b9d ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12747>
(cherry picked from commit f5f948826a)
2021-09-08 11:27:44 -07:00
Connor Abbott
f842868e32 ir3/lower_pcopy: Use right flags for src const/immed
At some point I split up the flags into overall/source flags and made
copies from immed/const only set IR3_REG_IMMED/IR3_REG_CONST on the
source flags, but I forgot to update this. Noticed by inspection.

Fixes: 0ffcb19b9d ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12747>
(cherry picked from commit e7f8d283d7)
2021-09-08 11:27:44 -07:00
Ed Martin
57dad5c2d7 winsys/radeonsi: Set vce_encode = true when VCE found
Allows VA-API encoding on AMD PITCAIRN

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5305
Fixes: 43c04ab2b4 ("radeonsi: separate video hw info based on HW engine individually")

Reviewed-by: James Zhu <James.Zhu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12679>
(cherry picked from commit 09aeb59b54)
2021-09-08 11:27:44 -07:00
Danylo Piliaiev
89f35c68f4 turnip: re-emit vertex params after they are invalidated
Constants could be invalidated via HLSQ_INVALIDATE_CMD which is
emitted when new pipeline is bound and in CmdClearAttachments.
Also they become invalid after secondary cmd execution.

Fixes geometry flickering in Genshin Impact
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5313

Fixes: 815a85dd7c "turnip: do not re-emit same vs params"

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12684>
(cherry picked from commit 9ab4bfcb53)
2021-09-08 11:27:44 -07:00
Ilia Mirkin
b56bfb8e5f freedreno: use OUT_WFI for emit_marker
This is only used pre-a5xx, where we want OUT_WFI. Tested on FD420.

Fixes: 8651cfbbf0 (freedreno: emit_marker() cleanup)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12734>
(cherry picked from commit 5d91cf41f1)
2021-09-08 11:27:44 -07:00
Bas Nieuwenhuizen
fddc8ddd41 util/fossilize_db: Don't corrupt keys during entry read.
We change the hash that is still used to set entry->key.

Fixes: d2d642cc01 "util/fossilize_db: Only allocate entries after full read."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12725>
(cherry picked from commit 8de60a1654)
2021-09-08 11:27:44 -07:00
mattvchandler
1f3067cebf gallium/osmesa: fix buffer resizing
Generate a new buffer if OSMesaMakeCurrent is called with a new size
Fix a use-after-free error when the old buffer is destroyed

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5276
Fixes: 26c6f6cfbb ("gallium/osmesa: Remove the broken buffer-reuse scheme.")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12685>
(cherry picked from commit eed660221b)
2021-09-08 11:27:44 -07:00
Mike Blumenkrantz
12ca003fc8 tgsi_to_nir: force int type for LAYER output
this otherwise gets confused as a vec4 most of the time

Cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12709>
(cherry picked from commit 3b289c9f30)
2021-09-08 11:27:44 -07:00
Adrian Bunk
26171c9769 util/format: NEON is not available with the soft-float ABI
Fixes: 80923e8d58 ("util/format: Add some NEON intrinsics-based u_format_unpack.")
Reviewed-by: Emma Anholt <emma@anholt.net>
Tested-by: Ross Burton <ross.burton@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12569>
(cherry picked from commit 7155676618)
2021-09-08 10:10:09 -07:00
Marek Olšák
27bb508dcc radeonsi: disable DCC stores on Navi12-14 for displayable DCC to fix corruption
This is a hardware limitation.

Fixes: 1d64a1045e "radeonsi: enable dcc image stores on gfx10+"

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12449>
(cherry picked from commit b648d6fbf8)
2021-09-08 09:39:53 -07:00
Mike Blumenkrantz
039fd5c63c zink: destroy shader modules on program free to avoid leaking
it's irrelevant whether the shader pointer is valid, the shader cache
may still exist

Fixes: a92442225c ("zink: split up shader cache per-stage")

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12650>
(cherry picked from commit b7534fe82a)
2021-09-08 09:39:53 -07:00
Marek Olšák
a8d20a871e radeonsi: fix a memory leak in si_get_shader_binary_size
Fixes: bf8a1ca902 "radeonsi: use the new run-time linker for shaders"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5272

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12656>
(cherry picked from commit deacef5d43)
2021-09-08 09:39:52 -07:00
Marek Olšák
3b02803684 mesa: skip draw calls with unaligned indices
GL doesn't say which error we should report. dEQP expects no error and
no crash and allows skipping the call. Some drivers can crash.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5227
Cc: mesa-stable@lists.freedesktop.org

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12533>
(cherry picked from commit 6367d8036a)
2021-09-08 09:39:52 -07:00
Marek Olšák
b387d54238 mesa: fix gl_DrawID with indirect multi draws using user indirect buffer
The code lowered the draws to direct ones but disregarded gl_DrawID.
We need to pass the draw ID to the driver manually.

gl_DrawID is the 3rd parameter of DrawGallium here.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5274
Cc: mesa-stable@lists.freedesktop.org

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12533>
(cherry picked from commit 614f273ab4)
2021-09-08 09:39:51 -07:00
Marek Olšák
6ce98f2d7d mesa: remove unused indices parameter from validate functions
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12533>
(cherry picked from commit 1f80cd35cb)
2021-09-08 09:39:51 -07:00
Rhys Perry
ad3094eac9 aco: don't constant propagate to DPP instructions
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12601>
(cherry picked from commit e27946ca11)
2021-09-08 09:39:48 -07:00
Ian Romanick
662d72b770 nir/lower_bit_size: Support add_sat and sub_sat
Without this, lowered saturating ALU instructions would only clamp to
the range of the new type instead of the range of the old type.

v2: Use nir_iclamp.  Suggested by Jason. Use new
u_{int,uint}N_{min,max}() helpers.

Fixes: 090e282407 ("nir: Add a saturated unsigned integer add opcode")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12142>
(cherry picked from commit 7d8bf7c167)
2021-09-08 09:39:40 -07:00
Ian Romanick
4668c70d12 util: Add and use functions to calculate min and max int for a size
Many places need to know the maximum or minimum possible value for a
given size integer... so everyone just open-codes their favorite
version.  There is some potential to hit either undefined or
implementation-defined behavior, so having one version that Just Works
seems beneficial.

v2: Fix copy-and-pasted bug (INT64_MAX instead of INT64_MIN) in
u_intmin.  Noticed by CI.  Lol.  Rename functions
`s/u_(uint|int)(min|max)/u_\1N_\2/g`.  Suggested by Jason.  Add some
unit tests that would have caught the copy-and-paste bug before wasting
CI time.  Change the implementation of u_intN_min to use the same
pattern as stdint.h.  This avoids the integer division.  Noticed by
Jason.

v3: Add changes to convert_clear_color
(src/gallium/drivers/iris/iris_clear.c).  Suggested by Nanley.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Suggested-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12177>
(cherry picked from commit 72259a870f)
2021-09-08 09:39:38 -07:00
Quantum
f8f623e44d main: allow all external textures for BindImageTexture
According to OES_EGL_image_external_essl3:

  On p. 196 in the errors section for BindImageTexture, replace the
  last error with the following:

    "An INVALID_OPERATION error is generated if <texture> is neither the
     name of an immutable texture object, nor the name of an external
     texture object."

According to OES_EGL_image_external:

  The command

    void EGLImageTargetTexture2DOES(enum target, eglImageOES image);

  with <target> set to TEXTURE_EXTERNAL_OES defines the currently bound
  external texture object to be a target sibling of <image>.

  ...

  If <target> is not TEXTURE_EXTERNAL_OES, the error INVALID_ENUM is
  generated.  (Note: if GL_OES_EGL_image is supported then <target> may
  also be TEXTURE_2D).

Currently, mesa only allows GL_TEXTURE_EXTERNAL_OES textures to be bound
by glBindImageTexture. However, the language of the specification does not
appear to use "external" to refer to GL_TEXTURE_EXTERNAL_OES specifically,
since OES_EGL_image_external allows external eglImageOES to be attached
to GL_TEXTURE_2D in the presence of GL_OES_EGL_image. Thus, it should be
interpreted to refer to all types of external textures, including 2D
textures attached via glEGLImageTargetTexture2DOES.

Fixes: ed43dd62ac ("main: allow external textures for BindImageTexture")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12383>
(cherry picked from commit e52aa1edff)
2021-09-08 09:38:14 -07:00
Dylan Baker
bfffc42265 .pick_status.json: Update to 076c8f041a 2021-09-08 09:38:05 -07:00
liuyujun
2058e98e41 gallium: fix surface->destroy use-after-free
regen surface on every update framebuffer

Cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Marek Olšák <marek.olsak@amd.com>

Signed-off-by: liuyujun <liuyujun@uniontech.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12520>
(cherry picked from commit 2bdc0bb324)
2021-08-31 09:26:22 -07:00
Lionel Landwerlin
25f91e6ab9 intel/fs: fix framebuffer reads
We're missing some restrictions on those messages.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5292
Cc: mesa-stable
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12615>
(cherry picked from commit 838c0e5eef)
2021-08-31 09:26:22 -07:00
Mike Blumenkrantz
179a291826 zink: free local shader nirs on program free
leak--

Fixes: 61f2667cf5 ("zink: remove gfx program slot mapping")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12630>
(cherry picked from commit 441018a173)
2021-08-31 09:26:21 -07:00
Mike Blumenkrantz
29e51b6eb0 radv: use pool stride when copying single query results
the specified stride is irrelevant for this case since there's only one
result to write

Cc: mesa-stable

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12619>
(cherry picked from commit 90a0556c27)
2021-08-31 09:26:21 -07:00
Neha Bhende
808f6e6095 svga/drm: use pb_usage_flags instead of pipe_map_flags in vmw_svga_winsys_buffer_map
This patch basically maps pipe_map_flags to pb_flags. Since we are mapping it,
STATIC_ASSERTS won't be required.

Fixes: 00c30dad78 ("gallium: renumber PIPE_MAP_* enums to remove holes")

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12606>
(cherry picked from commit 98fded8a39)
2021-08-31 09:26:20 -07:00
Dylan Baker
a02b68ac25 .pick_status.json: Update to f4b61e9061 2021-08-31 09:26:17 -07:00
Rhys Perry
0ff8559d9f aco: include utility in isel
For std::exchange().

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes: c1d11bb92c ("aco: Add loop creation helpers.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5301
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12614>
(cherry picked from commit 9df9fe7dfa)
2021-08-30 09:40:37 -07:00
Timur Kristóf
e773de69c4 nir: Fix local_invocation_index upper bound for non-compute-like stages.
The lowered LS and NGG stages use local_invocation_index and they
can benefit from the unsigned upper bound because they can emit a
less expensive integer multiplication instruction.
This was working in the past, but accidentally borked by a refactor.

Fossil DB changes on Sienna Cichlid:

Totals from 956 (0.74% of 128647) affected shaders:
CodeSize: 2354172 -> 2344712 (-0.40%)
Instrs: 434359 -> 434327 (-0.01%)
Latency: 1883949 -> 1876814 (-0.38%)
InvThroughput: 762638 -> 757405 (-0.69%)

Fossil DB changes on Sienna Cichlid (with NGGC enabled):

Totals from 57873 (44.99% of 128647) affected shaders:
CodeSize: 155844192 -> 155607064 (-0.15%)
Instrs: 29799184 -> 29799152 (-0.00%)
Latency: 130959764 -> 130814224 (-0.11%); split: -0.11%, +0.00%
InvThroughput: 21100300 -> 20928635 (-0.81%); split: -0.81%, +0.00%

Fixes: 8af6766062
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12558>
(cherry picked from commit 548b383310)
2021-08-30 09:40:37 -07:00
Timur Kristóf
1317469079 aco: Unset 16 and 24-bit flags from operands in apply_extract.
Consider the following sequence in a shader:
b = p_extract a
c = v_mad_u32_u16 b, X, 0

The optimizer applies extract, resulting in:
c = v_mad_u32_u16 a, X, 0 (correct)

Then it mistakenly turns that into:
c = v_mul_u32_u24 a, X, 0 (incorrect)

In this case, the p_extract is applied to v_mad_u32_u16 by
apply_extract. After this, we can no longer be sure that
the operands are still 16 or 24-bit, so we have to remove
this flag.

No Fossil DB changes.

Fixes: 54292e99c7
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12558>
(cherry picked from commit 76b9dd6266)
2021-08-30 09:40:36 -07:00
Samuel Pitoiset
6f312eccb3 radv: disable DCC image stores on Navi12-14 for displayable DCC corruption
DCC image stores require 128B but 64B is used for displayable DCC.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5265
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5106
Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12521>
(cherry picked from commit 0c550a5fe6)
2021-08-30 09:40:35 -07:00
Timur Kristóf
30c3079cd0 aco: Emit zero for the derivatives of uniforms.
Observed in a shader from Resident Evil Village.
This also helps prevent emitting invalid IR.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12599>
(cherry picked from commit cfb0d931f2)
2021-08-30 09:40:34 -07:00
Dylan Baker
b104b498a8 .pick_status.json: Update to a6a89aaa2f 2021-08-30 09:40:30 -07:00
Boris Brezillon
a5abb4eba7 panfrost: v7 does not support RGB32_UNORM textures
Cc: mesa-stable
Fixes: c6bdd976e6 ("panfrost: Split out v6/v7 format tables")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12588>
(cherry picked from commit 19e29960e9)
2021-08-27 12:59:44 -07:00
Yevhenii Kharchenko
dc1431d367 iris: fix layer calculation for TEXTURE_3D ReadPixels() on mip-level>0
Fixes assert when ReadPixels() called to read from FBO to
GL_PIXEL_PACK_BUFFER, on mip-level > 0, since num_layers
wasn't properly calculated with mip-level.

v2: patched 'iris_create_sampler_view' function instead of
'resolve_sampler_views'. Just like it was suggested in this
function's comment.
The logic of fix is similar to one in 'update_image_surface' function
of i965 driver, which is introduced in commit
f9fd0cf479.
With a slight change: setting array_len=1, like it was done in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5808 ,
since minifying depth fails KHR-GLES2.texture_3d.filtering tests.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4145
Fixes: 3c979b0e ('iris: add some draw resolve hooks')

Signed-off-by: Yevhenii Kharchenko <yevhenii.kharchenko@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9253>
(cherry picked from commit b945262773)
2021-08-27 10:21:44 -07:00
Filip Gawin
64720c0a3c nir: fix ifind_msb_rev by using appropriate type
As you can see comparion "x < 0" doesn't make
sense if x is unsigned.

Fixes: a5747f8a ("nir: add opcodes for *find_msb_rev and lowering ")

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12548>
(cherry picked from commit 46f3582c6f)
2021-08-27 10:21:44 -07:00
Filip Gawin
1b9a3aa5d7 nir: fix shadowed variable in nir_lower_bit_size.c
Fixes: 6d79298992 ("nir/lower_bit_size: fix lowering of {imul,umul}_high")

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12527>
(cherry picked from commit 9083e9a483)
2021-08-27 10:21:43 -07:00
Lionel Landwerlin
71a2d80980 nir: prevent peephole from generating invalid NIR
We can't append instructions following a return/halt instruction
because the control flow helpers will modify the successor of the
block containing the return/halt. And the NIR validator enforces that
the return/halt must have the end of the function as successor.

This tends to happen following lower_shader_calls lowering which
inserts halts. This probably doesn't prevent the optimization, it'll
just happen in one of the return shaders after the halt has been
removed.

v2: Move prev block ending check earlier in the function (Daniel)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12506>
(cherry picked from commit a13e79843e)
2021-08-27 10:05:51 -07:00
Timothy Arceri
ce5be91818 nir: move nir_block_ends_in_break() to nir.h
Will be used in a following commit.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12064>
(cherry picked from commit a7f2e683de)
2021-08-27 10:05:48 -07:00
Ilia Mirkin
18581c3a30 glsl: fix explicit-location ifc matching in presence of array types
We were treating each field as if it took up a single slot. However
that's not the case. And with strict matching (GLSL 4.20+ / ES 3.1+) we
would end up not matching identical interfaces.

Fixes: c4545676d7 ("glsl/linker: fix location aliasing checks for interface variables")
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12479>
(cherry picked from commit 18962b94d3)
2021-08-27 10:00:16 -07:00
Nanley Chery
ad37d530ce intel/blorp: Fix Gfx7 stencil surface state valign
Stencil on Gfx7 has a vertical alignment element of 8, but the largest
its surface state can express is 4. Apply the Gfx6 solution of changing
the alignment in blorp_surf_retile_w_to_y.

Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12132>
(cherry picked from commit c7bcbc950c)
2021-08-27 10:00:13 -07:00
Alyssa Rosenzweig
894627ec89 panfrost: Raise maximum texture size
The hardware can handle much larger textures than we allowed. The game
"Cathedral" requires larger textures for some bizarre reason. Raise the
limit so the game runs, syncing MAX_MIP_LEVELS, the comments, and the CAPs.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Closes: #5203
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12312>
(cherry picked from commit d051b06a48)
2021-08-27 10:00:12 -07:00
Timur Kristóf
2f1bc2bb60 aco: Fix to_uniform_bool_instr when operands are not suitable.
Don't attempt to transform uniform boolean instructions when
their operands are unsuitable. This can happen eg. due to other
optimizations that combine SALU instructions which clear out
the uniform instruction labels.

Cc: mesa-stable
Fixes: 8a32f57fff
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11573>
(cherry picked from commit abcc83e713)
2021-08-27 10:00:11 -07:00
Dave Airlie
554e47b603 crocus: add missing fs dirty on reduced prim change.
the reduced prim is used to decide some line antialiasing settings.
this fixes mesa-demos antialias

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12536>
(cherry picked from commit ad78643061)
2021-08-27 10:00:02 -07:00
Dave Airlie
1c89b990a6 crocus: add missing line smooth bits.
Just noticed this in passing.

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12536>
(cherry picked from commit 6b7a68b7c2)
2021-08-27 10:00:02 -07:00
Mike Blumenkrantz
be32871110 zink: fix pipeline caching
this was apparently always broken, but in a very, very subtle way
where the hash table would compare the current pipeline state against
itself instead of using the cache entry's state

Cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12535>
(cherry picked from commit 560dc4f790)
2021-08-27 10:00:00 -07:00
Dylan Baker
47bc609b62 .pick_status.json: Update to 9bc61108d7 2021-08-27 09:57:49 -07:00
Alyssa Rosenzweig
4489684269 panfrost: Replace writers pointer with hash table
This ensures each context can have a separate batch writing a resource
and we don't race trying to flush each other's batches. Unfortunately
the extra hash table operations regress draw-overhead numbers by about
8% but I'd rather eat the overhead and have an obviously correct
implementation than leave known buggy code in tree.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit 8503cab2e0)

Conflicts:
	src/gallium/drivers/panfrost/pan_job.c
2021-08-26 11:42:49 -07:00
Alyssa Rosenzweig
ee6739d4d0 panfrost: Remove writer = NULL assignments
These already happened.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit afebbadda8)
2021-08-26 11:18:20 -07:00
Alyssa Rosenzweig
57163a9847 panfrost: Remove rsrc->track.users
No longer needed.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit e7eb28fed0)
2021-08-26 11:18:19 -07:00
Alyssa Rosenzweig
a29b083bbe panfrost: Prefer batch->resources to rsrc->users
This expresses the semantic of the flush only applying to batches within
the context, not globally, in line with OpenGL's multithreading rules.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit e98aa55413)

Conflicts:
	src/gallium/drivers/panfrost/pan_job.c
2021-08-26 11:18:17 -07:00
Alyssa Rosenzweig
22dd50563e panfrost: Add foreach_batch iterator
Using the active mask.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit 5c4fbae571)
2021-08-26 10:46:24 -07:00
Alyssa Rosenzweig
6b788b8870 panfrost: Maintain a bitmap of active batches
This is on the context, so no concurrency issues. This will allow us to
efficiently iterate active batches.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit 79dd1a4e63)
2021-08-26 10:46:24 -07:00
Alyssa Rosenzweig
ca3c31add8 panfrost: Cache number of users of a resource
This can be tracked efficiently with atomics, and reduces the places we
use the rsrc->track.users bitmap which has concurrency issues.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit b8da5b1b7f)
2021-08-26 10:46:23 -07:00
Alyssa Rosenzweig
2987bf8761 panfrost: Switch resources from an array to a set
This will help us reduce shared state and simplify multithreading, at
the expense of additional CPU overhead.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12528>
(cherry picked from commit 2f63ccd080)
2021-08-26 10:46:23 -07:00
Alyssa Rosenzweig
a56b5e1fcd panfrost: Move bo->label assignment into the lock
We already took the lock, we just unlocked too early. Since the label is
reset in the BO cache, this is racy. Minimal impact in practice but is
still /wrong/ and caught by helgrind.

Fixes: 3fa1f93dac ("panfrost: Label all BOs in userspace")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12525>
(cherry picked from commit bd15e5e6af)
2021-08-26 10:46:22 -07:00
Alyssa Rosenzweig
a8c39e9a68 panfrost: Don't use ralloc for resources
ralloc is not thread safe, so we cannot use a pipe_screen as a ralloc
context unless we lock the screen. The allocation patterns for resources
are trivial, so just use malloc/calloc/free directly instead of ralloc.
This fixes a segfault in:

dEQP-EGL.functional.sharing.gles2.multithread.random.images.copytexsubimage2d.1

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12525>
(cherry picked from commit e6924be737)
2021-08-26 10:46:21 -07:00
Alyssa Rosenzweig
b389e1580c panfrost: Protect the variants array with a lock
Without a lock, two threads may bind the same shader CSO simultaneously,
allocate the same variant simultaneously, and then race each other in
the compiler. This manifests in various ways, most commonly failing the
assertion that UBO pushing has only run once. The simple_mtx_t solution
is used in Iris. Fixes the crash in:

dEQP-EGL.functional.sharing.gles2.multithread.simple.buffers.bufferdata_render

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12525>
(cherry picked from commit 40edc87956)
2021-08-26 10:46:21 -07:00
Dylan Baker
e5f2a4a416 .pick_status.json: Update to 71e748ad24 2021-08-26 10:46:17 -07:00
Dave Airlie
68df13f3ce crocus: copy views before adjusting
The current code overwrote the original view which meant if we
had to reemit a surface the second emit would be wrong.

This fixes cubemaps on gm45 and maybe some issues with 3D textures
elsewhere.

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12514>
(cherry picked from commit 63138c42c5)

Conflicts:
	src/gallium/drivers/crocus/crocus_state.c
2021-08-26 10:45:57 -07:00
Alyssa Rosenzweig
ece6458c04 panfrost: Fix NULL dereference in allowlist code
If a user attempts to run Panfrost on an unsupported GPU (e.g. Mali
T604), Panfrost will refuse to load and will destroy the screen
immediately, allowing for a graceful fallback to a software rasterizer.
However, the screen destroy code calls a screen_destroy function in the
GenXML vtbl -- and this function is still NULL when the allowlist is
checked. This manifests as crashes on unsuported GPUs.

Issue tracked down with Icecream95's mad Ghidra skills.

Closes: #5269
Fixes: 88dc4db6be ("panfrost: Init/destroy blitter from per-gen file")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reported-by: Icecream95 <ixn@disroot.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12512>
(cherry picked from commit 2d31d469f7)
2021-08-26 10:06:38 -07:00
Alyssa Rosenzweig
c90937aa10 panfrost: Zero initialize blend_shaders
Fixes an invalid read caught by valgrind when there is a hole in the
valid render target mask:

==6749== Conditional jump or move depends on uninitialised value(s)
==6749==    at 0x5E88EC0: panfrost_prepare_fs_state (pan_cmdstream.c:417)
==6749==    by 0x5E88EC0: panfrost_emit_frag_shader (pan_cmdstream.c:501)
==6749==    by 0x5E88EC0: panfrost_emit_frag_shader_meta (pan_cmdstream.c:573)
==6749==    by 0x5E88EC0: panfrost_update_state_fs (pan_cmdstream.c:2593)
==6749==    by 0x5E8B0BF: panfrost_direct_draw (pan_cmdstream.c:2839)

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Fixes: a124c47b9f ("panfrost: Fix NULL derefs in pan_cmdstream.c")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11383>
(cherry picked from commit 3113dbd837)
2021-08-26 09:38:39 -07:00
Alyssa Rosenzweig
0d34c23d37 pan/mdg: Insert moves before writeout when needed
Otherwise we end up accessing overwritten registers. Fixes

dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_enable_buffer_enable

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11383>
(cherry picked from commit f45ceb8182)

This seems to have fixed a few additional tests on 21.2:
 - dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.const_expression_fragment
 - dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_separate_blend_func_buffer_separate_blend_func
 - dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_blend_func_buffer_separate_blend_func
2021-08-26 09:10:10 -07:00
Alyssa Rosenzweig
7c7479e357 panfrost: Use blendable check for tib read check
These are the same! Either you're blendable and can use f32/f16
conversion, or you're raw and you can only get raw. It's that simple!

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11383>
(cherry picked from commit 2cf581b195)
2021-08-25 14:50:12 -07:00
Alyssa Rosenzweig
0f5b53c848 panfrost: Remove unneeded quirks from T760
Will cause trouble later in the series when we start garbage collecting
unneeded code.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11383>
(cherry picked from commit 6dfdeea213)
2021-08-25 13:39:46 -07:00
Boris Brezillon
fd432106c9 panfrost: Add explicit padding to pan_blend_shader_key
So the hash function doesn't end up hashing uninitialized values.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reported-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Fixes: bbff09b952 ("panfrost: Move the blend shader cache at the device level")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11383>
(cherry picked from commit 6b7b8eb046)
2021-08-25 11:25:46 -07:00
Icecream95
b4a7542b55 pan/bi: Extend bi_add_nop_for_atest for tilebuffer loads
Fixes framebuffer_fetch and blend_equation_advanced dEQP tests on v6.

v2: Use clause dependencies rather than comparing the message type
v3: Shift the BIFROST_SLOT_* constants before using them as a mask

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12375>
(cherry picked from commit 295807e666)
2021-08-25 11:25:45 -07:00
Alyssa Rosenzweig
9fa11ec3d1 pan/bi: Use CLPER_V6 on Mali G31
Apparently, CLPER_V7 is missing from Mali G31, but CLPER_V6 works. Fixes
INSTR_INVALID_ENC faults and failures in
dEQP-GLES3.functional.shaders.derivate.* on Dvalin.

Technically not an errata but an implementation difference. I suspect
Mali G51 will need this as well, should we ever allowlist it.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
(cherry picked from commit 61c8e39649)

Conflicts:
	src/panfrost/bifrost/bi_quirks.h
2021-08-25 11:08:33 -07:00
Alyssa Rosenzweig
9075d635de pan/bi: Set the sample ID for blend shader LD_TILE
Use the explicit sample mode and set the sample ID in the pixel indices
structure to the current sample ID. This fixes tilebuffer loads in blend
shaders on multisampled framebuffers.

Make sure the new routine is broken out to a helper for use with ST_TILE
in the next commit.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
(cherry picked from commit 16394dc71a)
2021-08-25 09:35:58 -07:00
Alyssa Rosenzweig
6231667079 pan/bi: Extract load_sample_id to a helper
Will be reused in the next commit.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
(cherry picked from commit 9f19a883bc)
2021-08-25 09:35:58 -07:00
Alyssa Rosenzweig
514270a689 pan/bi: Correct the sr_count on +ST_TILE
Otherwise we'll get validator fails when emitting +ST_TILE.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
(cherry picked from commit 5c2a4eb1c2)
2021-08-25 09:35:56 -07:00
Alyssa Rosenzweig
277e0c45a9 pan/bi: Don't set td in blend shaders
This breaks screen-space derivatives in a shader that uses multiple
render targets, if the derivative calculation is scheduled after a BLEND
instruction calling into a blend shader.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
(cherry picked from commit 710498e424)
2021-08-25 09:35:54 -07:00
Alyssa Rosenzweig
e3bcce01d9 panfrost: Disable shader-assisted indirect draws
Although it is passing all of dEQP-GLES31, it is failing a few
KHR-GLES31.* tests. It also has performance issues at the moment. Invert
the existing noindirect debug flag to become a indirect debug flag. Set
this flag for dEQP-GLES31 CI on G52, to make sure the code doesn't bit
rot on the hope someone will pick this up later on.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12478>
(cherry picked from commit a7f7d74137)

Conflicts:
	src/gallium/drivers/panfrost/pan_screen.c
	src/panfrost/lib/pan_util.h
2021-08-24 20:11:11 -07:00
Alyssa Rosenzweig
4d3e06e55c panfrost: Handle non-dithered clear colours
In b9c095cc2c ("panfrost: Rewrite the clear colour packing code"),
packing of clear colours was corrected to use the tilebuffer's
fractional bits, fixing dithering of the clear colour with formats like
RGB565. Unfortunately, that commit did so unconditionally. If the
framebuffer is dithered, but dithering is disabled at the time of
the clear, we would incorrectly dither the clear.

This is a regression, as the old (broken) code passed the relevant CTS
test. What's the catch? Depending on dither state, there are two
formulas to pack tilebuffer colours. We need to handle both. Fixes
KHR-GLES31.core.draw_buffers_indexed.color_masks.

Fixes: b9c095cc2c ("panfrost: Rewrite the clear colour packing code")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12460>
(cherry picked from commit 22538b89b3)

Conflicts:
	src/panfrost/lib/tests/test-clear.c
	src/panfrost/vulkan/panvk_cmd_buffer.c
2021-08-24 16:28:24 -07:00
Erik Faye-Lund
12f77679a6 lavapipe: fix reported subpixel precision for lines
We have no reason to report a subpixel precision of 4 for lines; in fact
LLVMpipe uses 8 subpixel bits for lines, similar to other primitives.
But let's use the pipe-cap for this instead of hard-coding it.

Fixes: 9fbf6b2abf ("lavapipe: implement VK_EXT_line_rasterization")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12277>
(cherry picked from commit a16f3963d3)
2021-08-24 15:59:31 -07:00
Vinson Lee
76d1828b97 freedreno: Require C++17.
Commit 3a772be026 ("freedreno: Add perfetto renderpass support")
uses C++17 init-statement feature.

GCC
../src/gallium/drivers/freedreno/freedreno_perfetto.cc: In lambda function:
../src/gallium/drivers/freedreno/freedreno_perfetto.cc:148:11: warning: init-statement in selection statements only available with ‘-std=c++17’ or ‘-std=gnu++17’
  148 |       if (auto state = tctx.GetIncrementalState(); state->was_cleared) {
      |           ^~~~

Clang
../src/gallium/drivers/freedreno/freedreno_perfetto.cc:148:11: warning: 'if' initialization statements are a C++17 extension [-Wc++17-extensions]
      if (auto state = tctx.GetIncrementalState(); state->was_cleared) {
          ^

Intel C++ Compiler
../src/gallium/drivers/freedreno/freedreno_perfetto.cc(148): error: expected a ")"
        if (auto state = tctx.GetIncrementalState(); state->was_cleared) {
                                                   ^

Fixes: 3a772be026 ("freedreno: Add perfetto renderpass support")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5193
Suggested-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Acked-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12293>
(cherry picked from commit 4fc2a6cbdb)
2021-08-24 15:59:29 -07:00
Dave Airlie
cc3e149f80 vulkan/wsi/sw: wait for image fence before submitting to queue
With hw devices, when you submit a present, implicit sync will
make sure the work submitted to the gpu on the client will end
up happening before the present work submitted on the server.

However with sw paths there is no real GPU, the lavapipe fake
GPU thread is client side only and presenting is done directly
from the pixmap (or later shared pixmap). In order for this to
make sense the wsi common code should wait for the fence on the
image before queueing the submit to the server so that all
client works has been flushed to the pixmap before the copy or
present operation is submitted.

Fixes: 8004fa9c95 ("vulkan/wsi: add sw support. (v2)")
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12502>
(cherry picked from commit 0cddfba328)
2021-08-24 15:59:26 -07:00
Samuel Pitoiset
56f21793de radv: fix copying depth+stencil images on compute
Using separate aspects is required.

Fixes few CTS failures (dEQP-VK.api.copy_and_blit.*) when the compute
path is forced in the driver. Note that CTS coverage of compute queue
is rather limited.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12287>
(cherry picked from commit be6bdb0918)
2021-08-24 15:59:12 -07:00
Timothy Arceri
8f18e97dd7 glsl: fix variable scope for instructions inside case statements
Fixes: 665d75cc5a ("glsl: Fix scoping bug in if statements.")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5247

Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12435>
(cherry picked from commit 02b394023b)
2021-08-24 15:59:12 -07:00
Connor Abbott
387039e4d0 ir3/ra: Handle huge merge sets
It can happen that we create an enormous merge set, even larger than the
entire register file, in which case find_best_gap() would loop
infinitely. This seems to be triggered more often with
IR3_SHADER_DEBUG=spillall, since it actually happened with a CTS test.
Just bail out in that case.

Fixes: 0ffcb19b9d ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12033>
(cherry picked from commit efb34d6ee6)
2021-08-24 15:59:11 -07:00
Connor Abbott
8e4d6692f3 ir3/ra: Fix available bitset for live-through collect srcs
When we mark live-through sources that are merged with the destination
as killed, we kept the bitsets in sync, but we forgot to keep them in
sync when unmarking them after allocating the destination. The result
was that "available" wasn't correct for any instruction afterwards. This
resulted in a bad register allocation with IR3_SHADER_DEBUG=spillall for
a dEQP-VK test.

While we're changing this, use ra_foreach_src().

Fixes: 0ffcb19b9d ("ir3: Rewrite register allocation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12033>
(cherry picked from commit 70c22d3894)
2021-08-24 15:59:11 -07:00
Jason Ekstrand
e64eeb5240 anv: Set CONTEXT_PARAM_RECOVERABLE to false
We want the kernel to ban our context immediately instead of foolhardily
attempting to recover.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12476>
(cherry picked from commit a6a449837b)
2021-08-24 15:59:10 -07:00
Dylan Baker
f2b61f3538 .pick_status.json: Update to 572ed22494 2021-08-24 15:59:03 -07:00
Simon Ser
2a88afe58a v3d: implement resource_get_param
Prior to this commit, the stride, offset and modifier were fetched
via WINSYS_HANDLE_TYPE_KMS. However we can't make such a query
succeed if the buffer couldn't be imported to the KMS device.

Instead, implement the resource_get_param hook to allow users to
fetch this information without WINSYS_HANDLE_TYPE_KMS.

A tiny helper function is introduced to compute the modifier of a
resource.

Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: 7bcb223639 ("v3d, vc4: Fix dmabuf import for non-scanout buffers")
Reported-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12370>
(cherry picked from commit 8de086e12f)

Conflicts:
	src/broadcom/ci/piglit-v3d-rpi4-fails.txt
2021-08-19 10:08:54 -07:00
Simon Ser
5d99b0869a vc4: implement resource_get_param
Prior to this commit, the stride, offset and modifier were fetched
via WINSYS_HANDLE_TYPE_KMS. However we can't make such a query
succeed if the buffer couldn't be imported to the KMS device.

Instead, implement the resource_get_param hook to allow users to
fetch this information without WINSYS_HANDLE_TYPE_KMS.

A tiny helper function is introduced to compute the modifier of a
resource.

Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: 7bcb223639 ("v3d, vc4: Fix dmabuf import for non-scanout buffers")
Reported-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12370>
(cherry picked from commit b1fbceac6f)
2021-08-19 10:07:57 -07:00
Simon Ser
5aa0faf512 panfrost: implement resource_get_param
Prior to this commit, the stride, offset and modifier were fetched
via WINSYS_HANDLE_TYPE_KMS. However we can't make such a query
succeed if the buffer couldn't be imported to the KMS device.

Instead, implement the resource_get_param hook to allow users to
fetch this information without WINSYS_HANDLE_TYPE_KMS.

Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: 4c092947df ("panfrost: fail in get_handle(TYPE_KMS) without a scanout resource")
Reported-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12370>
(cherry picked from commit 99fc6f7271)
2021-08-19 10:07:56 -07:00
Simon Ser
e26269535d etnaviv: add stride, offset and modifier to resource_get_param
Prior to this commit, the stride, offset and modifier were fetched
via WINSYS_HANDLE_TYPE_KMS. However we can't make such a query
succeed if the buffer couldn't be imported to the KMS device.

Instead, extend the resource_get_param hook to allow users to fetch
this information without WINSYS_HANDLE_TYPE_KMS.

Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: 9da901d2b2 ("etnaviv: fail in get_handle(TYPE_KMS) without a scanout resource")
Reported-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12370>
(cherry picked from commit b5919b0b10)
2021-08-19 10:07:56 -07:00
Erik Faye-Lund
099a7f6ff9 gallium/nir/tgsi: initialize file_max for inputs
When this was rewritten to support Vulkan, we stopped initializing
file_max to -1 in the case of no inputs. This causes the draw module
to go down a needlessly pessimistic case, printing an error while we're
at it.

Fixes: 42b5cfdbd2 ("gallivm/nir: fix vulkan vertex inputs")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12440>
(cherry picked from commit 63529782d3)
2021-08-19 10:07:55 -07:00
Erik Faye-Lund
33ace70ae1 gallium/nir/tgsi: fixup indentation
This was using mixed tabs and spaces, let's fix that before we start
modifying the code.

Fixes: 42b5cfdbd2 ("gallivm/nir: fix vulkan vertex inputs")
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12440>
(cherry picked from commit 4674698008)
2021-08-19 10:07:54 -07:00
Ilia Mirkin
1a3180d595 mesa: don't return errors for gl_* GetFragData* queries
There is nothing in the spec about this. BindFragDataLocation* is
supposed to return an error, but not Get.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5221
Fixes: 59012c3133 ("mesa: Implement glGetFragDataLocation")
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12333>
(cherry picked from commit bce19b3a77)
2021-08-19 10:07:53 -07:00
Dylan Baker
fb321556ec .pick_status.json: Update to 8e5e70bb3d 2021-08-19 10:07:49 -07:00
Mike Blumenkrantz
fa069379b4 nir/lower_vectorize_tess_levels: set num_components for vectorized loads
this otherwise explodes when rewriting e.g., a single array component load to a vec4

Fixes: f5adf27fb9 ("nir,radv: add and use nir_vectorize_tess_levels()")

fixes zmike/mesa#94

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12419>
(cherry picked from commit 649251ad4e)
2021-08-19 10:07:35 -07:00
Erik Faye-Lund
1133671ea3 gallivm: fix texture-mapping with 16-bit result
16bit integer support also implies using 16-bit results when sampling
textures.

Because we're returning the results in float SSA values instead of int,
we need to bitcast back to integers before truncating the values.

Fixes: 00ff60f799 ("gallivm: add 16-bit integer support")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12413>
(cherry picked from commit 45a61f1782)
2021-08-19 10:07:35 -07:00
Mao, Marc
8e0d61e1c7 iris: declare padding for iris_vue_prog_key
Otherwise with some compilers/environments (Android) padding
may contain garbage and memcmp of the key will fail.

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12438>
(cherry picked from commit fae1e99a15)
2021-08-19 10:07:34 -07:00
Samuel Pitoiset
1225326046 radv: fix fast clearing depth images with mips on GFX10+
Found by inspection.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12325>
(cherry picked from commit b16f3261a7)
2021-08-19 10:07:33 -07:00
Dylan Baker
22406c6316 .pick_status.json: Update to 35c3f5f08b 2021-08-19 10:07:28 -07:00
Dylan Baker
cb6d87170a docs: add SHA256 sum for mesa 21.2.1 2021-08-19 10:03:24 -07:00
Dylan Baker
f5d4509d36 VERSION: bump for 21.2.1 release 2021-08-19 09:12:51 -07:00
Dylan Baker
d33e59a1cd docs: add release notes for 21.2.1 2021-08-19 09:12:44 -07:00
Jesse Natalie
d63b0c4e49 CI: Update Windows quick_gl baseline for mysterious new passes
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12391>
(cherry picked from commit f378799d9d)

Conflicts:
	.gitlab-ci/windows/quick_gl.txt
2021-08-18 15:04:03 -07:00
Dylan Baker
c202ad4606 .pick_status.json: Update to 35c3f5f08b 2021-08-18 13:54:35 -07:00
Jason Ekstrand
384184ac70 intel/isl: Add a missing assert in isl_tiling_get_intratile_offset_sa
Fixes: a4dafe1fad "intel/isl: Make the offset helpers four dimensional"
Acked-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11765>
(cherry picked from commit eb7c28bf24)
2021-08-17 10:33:47 -07:00
Jason Ekstrand
9c01036e77 intel/isl: Explicitly set offset_B = 0 in get_uncomp_surf for arrays
The only user of this case is iris which initializes offset_B to 0 so
there's no real bug here.  However, it is unexpected from an API PoV.

Fixes: 9946120d2b "intel/isl: Add more cases to isl_surf_get_uncompressed_surf"
Acked-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11765>
(cherry picked from commit 3702406154)
2021-08-17 10:33:47 -07:00
Roman Stratiienko
7afc784345 lima: Implement lima_resource_get_param() callback
Currently stride, offset, modifier is obtained by invoking
lima_resource_get_handle() with WINSYS_HANDLE_TYPE_KMS.

Before commit 47f000c170 this path was working. Obtained handle
was simply ignored by DRI frontend and only requested data used.

After commit 47f000c170 such requests started to fail when
DRI is initialized using KMSRO and resource has no scanout data.

When lima_resource_get_param() is implemented, it will be used in
a first place to obtain resource data.

Fixes: 47f000c170 ("lima: fail in get_handle(TYPE_KMS) without a scanout resource")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12362>
(cherry picked from commit 5ec6b6e9bb)
2021-08-17 10:33:46 -07:00
Marcin Ślusarz
8d4f8e7e6a glsl/opt_algebraic: disable invalid optimization
When operators other than eq and ne are involved we can't really
move operands around and negate them because such transformation
may change the value of the whole expression.

Some examples:

For unsigned var:
0 >= 1u + var would eventually become 0xffffffff >= var,
which would always evaluate to true, when original expression
was true only for var == 0xffffffff.

For signed var:
0 >= 1 + var would become -1 >= var, which would evaluate to
false for var == 2147483647, when original expression evaluated
to true (because signed overflow is defined to wrap around in
glsl, 1 + 2147483647 == -2147483648, so 0 >= -2147483648).

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5226
Fixes: 34ec1a24d6 ("glsl: Optimize (x + y cmp 0) into (x cmp -y).")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12359>
(cherry picked from commit 89bc8ff408)
2021-08-17 10:33:45 -07:00
Dylan Baker
40bdd9aad5 .pick_status.json: Update to 726fdf3385 2021-08-17 10:33:43 -07:00
Alyssa Rosenzweig
1bfddefadf panfrost: Rewrite the clear colour packing code
At the beginning of a render pass, the hardware will fill the tilebuffer
with an arbitrary 128-bit word. To implement colour clears, the driver
must pack the API-specific clear colour according to the 128-bit layout
of the tilebuffer. This layout depends only on the render target format.

The existing code to handle this was based on loose guesswork. It works
for the format / clear colour combinations tested in dEQP-GLES3, but it
is severely deficient in the general case.  It works by matching on the
PIPE format of the render target (not the layout of the tilebuffer). For
special cased PIPE formats, it open codes a buggy pack routine.
Otherwise, it defaults to util_pack_color in the hope that will work.
Since util_pack_color doesn't know anything about Mali tilebuffer
layouts, that means it's defaulting to wrong behaviour.

Now that we understand internal tilebuffer layouts, let's rewrite the
packing code. Instead of matching PIPE formats, map the PIPE format to
the internal tilebuffer layout using the common table, ensuring the
mapping remains in sync with the render target descriptor. Then for
blendable tilebuffer formats, pack using a common float -> fixed point
path supporting optional sRGB translation. Raw formats use
util_pack_color as before.

For formats with less than 8 bits per channel, the new code uses the
fractional bits of the fixed-point representation. This is required for
correct dithering if the clear colour is not exactly representable in
the final low precision format.

In summary, at least the following bugs in the old code are fixed:

   * Swapped R/B channels with sRGB
   * Swapped R/B channels with some missing formats
   * Incorrect dithering with RGB565, RGB5_A1

Fixes the following test cases:

   dEQP-EGL.functional.wide_color.window_8888_colorspace_srgb
   dEQP-EGL.functional.wide_color.pbuffer_8888_colorspace_srgb
   dEQP-EGL.functional.wide_color.window_888_colorspace_srgb
   dEQP-EGL.functional.wide_color.pbuffer_888_colorspace_srgb

Later in the series, unit tests are added for the new implementation.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12365>
(cherry picked from commit b9c095cc2c)

Conflicts:
	src/panfrost/lib/pan_util.h
2021-08-16 11:42:04 -07:00
Icecream95
8d5da6b0b4 panfrost: Only allow colour blit shaders to be killed
Fixes timeouts in SuperTuxKart with the advanced rendering pipeline.

Fixes: d034461921 ("panfrost: Set allow_forward_pixel_to_be_killed for blit")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12267>
(cherry picked from commit 0624346a20)
2021-08-16 11:40:39 -07:00
Alyssa Rosenzweig
4637f20a34 panfrost: Fix leak of render node fd
Transfer ownership of the render node fd to the panfrost_device (minor
change to panvk), and then close the file descriptor for the render node
bound to the panfrost_device when destroying the panfrost_device. Of all
the users of panfrost_open_device, panvk is the only one that correctly
closed the fd before. Accordingly, this fixes an fd leak in the Gallium
driver (and performance counter utilities).

This fix still applies to the Gallium driver when renderonly is in use--
although renderonly closes its own fd, the fd is _duplicated_ in
panfrost_drm_winsys.c, so renderonly and panfrost must _both_ close
their respective fd to fix the leak.

This fixes a crash when running dEQP-EGL for more than two hours.
dEQP-EGL creates a new screen for every test case and then immediately
destroys it. If destroying a screen leaks the fd, this causes the number
of open file descriptors to increase monotonically until the process
ends. This will eventually hit the system limit for number of open files
and abort the process.

This bug was identified while attempting to run the OpenGL ES
conformance tests via cts-runner, and then confirmed with `lsof`. With
the fix, the number of file descriptors reported by `lsof | wc -l` is
now constant while running dEQP-EGL as expected.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12346>
(cherry picked from commit 76377de99b)
2021-08-16 11:40:38 -07:00
Roman Stratiienko
b8ec9da966 AOSP: Update timestamps of target binaries
Fixes warning during the build and unnecessary rule execution:
***
ninja: Missing `restat`? An output file is older than the most recent input:
***

Fixes: 8621bd8d5e ("android: Add scripts to build using meson")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Tested-by: Mauro Rossi <issor.oruam@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12304>
(cherry picked from commit 21de785562)
2021-08-16 11:40:38 -07:00
Roman Stratiienko
0702cd0685 AOSP: Extract version from libdrm instead of hardcoding it.
mesa3d require up-to-date version of libdrm.
Hardcoding it to 2.4.105 is wrong.

Fixes: 8621bd8d5e ("android: Add scripts to build using meson")
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Tested-by: Mauro Rossi <issor.oruam@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12304>
(cherry picked from commit a70ff21efb)
2021-08-16 11:40:37 -07:00
Eric Engestrom
50c489f2a0 isl: drop left-over comment
Fixes: cf9ff082b4 ("isl: Bring back isl_format_layout::bpb")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3674>
(cherry picked from commit 773a70f9cb)
2021-08-16 11:40:37 -07:00
Eric Engestrom
533a3ebdd0 Revert "python: Explicitly add the 'L' suffix on Python 3"
This reverts commit ad363913e6.

This code was added to be able to compare the output file while porting
the script from python2 to python3, but this has long been finished and
the extra complexity is not needed anymore.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3674>
(cherry picked from commit 93cb3aca03)
2021-08-16 11:40:29 -07:00
Alyssa Rosenzweig
ca9ab792c6 drm-shim: Support kernels with >4k pages
mmap requires its offset is page aligned, but the current code only
guarantees 4k alignment, causing drm-shim to break badly on kernels with
>4k page sizes. This fixes drm-shim on my Apple M1, running bare metal
Linux with 16k pages. It probably also fixes exotic PowerPC systems with
64k pages.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Zoltan Boszormenyi <zboszor@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12347>
(cherry picked from commit 38f39cc1e2)
2021-08-16 11:40:28 -07:00
Dylan Baker
568dc0811d .pick_status.json: Update to 441e490f5a 2021-08-16 11:40:25 -07:00
Michel Zou
9ed17f7465 radv: fix build with mingw
Cc: 21.2 mesa-stable
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>

Closes #5092

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12178>
(cherry picked from commit e4c0a34bfe)
2021-08-13 10:28:41 -07:00
Lionel Landwerlin
809b4d1356 anv/android: handle image bindings from gralloc buffers
When creating an image out of a swapchain on Android, the android
layer call will detect a VkBindImageMemorySwapchainInfoKHR in the
pNext chain of the vkBindImageMemory2() call and add a
VkNativeBufferANDROID in the chain. This is what we should use as
backing memory for that image.

v2: Fix a couple of obvious mistakes (Tapani)

v3: Silence build warning (Lionel)
    Fix invalid object argument to vk_error() (Lionel)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: bc3c71b87a ("anv: don't try to access Android swapchains")
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5180
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12244>
(cherry picked from commit 19b7bbba73)
2021-08-13 10:28:40 -07:00
Vinson Lee
ac87f88cff nir: Initialize evaluate_cube_face_index_amd dst.x.
Fix defect reported by Coverity Scan.

Uninitialized scalar variable (UNINIT)
uninit_use: Using uninitialized value dst.x.

Fixes: a1a2a8dfda ("nir: add AMD_gcn_shader extended instructions")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12290>
(cherry picked from commit 8d679f4f4e)
2021-08-13 10:28:39 -07:00
Vinson Lee
8c26804eea meson: Remove duplicate xvmc in build summary.
Fixes: d30ce03bc0 ("meson: add build-summary")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12296>
(cherry picked from commit c0fc745b78)
2021-08-13 10:28:38 -07:00
Axel Davy
f7e77b7708 util: Fix translate from block compressed to rgba
Since
2b5178ee util: Switch the non-block formats to unpacking rgba rows instead of rects,
compressed formats define unpack_rgba_8unorm_rect instead
of unpack_rgba_8unorm.

Fixes the u_format_translate check to take this into account.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5201
Fixes: 2b5178ee ("util: Switch the non-block formats to unpacking rgba rows instead of rects")

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12315>
(cherry picked from commit 6a0e703512)
2021-08-13 10:28:38 -07:00
Dylan Baker
449df77f5e .pick_status.json: Update to 04bd2a1245 2021-08-13 10:28:31 -07:00
Roland Scheidegger
996946b3fe aux/cso: try harder to keep cso state in sync on cso context unbind
Before a73cb106a6, cso contexts were never reused, but now that they
are we need to be extra careful that the state in the cso context and
in the pipe context matches even after an unbind, since when the cso
context is reused the state might otherwise get out of sync (as there is
no concept of "initial state", basically cso always relied on the default
values being the same both in cso and the drivers).
This fixes some errors we've seen internally with lavapipe.

Fixes: a73cb106a6 ("aux/cso: split cso_destroy_context into unbind and a destroy functions")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12261>
(cherry picked from commit 513fb5438b)
2021-08-12 10:06:57 -07:00
Ian Romanick
e1b3eff8d2 intel/fs: sel.cond writes the flags on Gfx4 and Gfx5
On Gfx4 and Gfx5, sel.l (for min) and sel.ge (for max) are implemented
using a separte cmpn and sel instruction.  This lowering occurs in
fs_vistor::lower_minmax which is called very, very late... a long, long
time after the first calls to opt_cmod_propagation.  As a result,
conditional modifiers can be incorrectly propagated across sel.cond on
those platforms.

No tests were affected by this change, and I find that quite shocking.
After just changing flags_written(), all of the atan tests started
failing on ILK.  That required the change in cmod_propagatin (and the
addition of the prop_across_into_sel_gfx5 unit test).

Shader-db results for ILK and GM45 are below.  I looked at a couple
before and after shaders... and every case that I looked at had
experienced incorrect cmod propagation.  This affected a LOT of apps!
Euro Truck Simulator 2, The Talos Principle, Serious Sam 3, Sanctum 2,
Gang Beasts, and on and on... :(

I discovered this bug while working on a couple new optimization
passes.  One of the passes attempts to remove condition modifiers that
are never used.  The pass made no progress except on ILK and GM45.
After investigating a couple of the affected shaders, I noticed that
the code in those shaders looked wrong... investigation led to this
cause.

v2: Trivial changes in the unit tests.

v3: Fix type in comment in unit tests.  Noticed by Jason and Priit.

v4: Tweak handling of BRW_OPCODE_SEL special case.  Suggested by Jason.

Fixes: df1aec763e ("i965/fs: Define methods to calculate the flag subset read or written by an fs_inst.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Tested-by: Dave Airlie <airlied@redhat.com>

Iron Lake
total instructions in shared programs: 8180493 -> 8181781 (0.02%)
instructions in affected programs: 541796 -> 543084 (0.24%)
helped: 28
HURT: 1158
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 0.35% max: 0.86% x̄: 0.53% x̃: 0.50%
HURT stats (abs)   min: 1 max: 3 x̄: 1.14 x̃: 1
HURT stats (rel)   min: 0.12% max: 4.00% x̄: 0.37% x̃: 0.23%
95% mean confidence interval for instructions value: 1.06 1.11
95% mean confidence interval for instructions %-change: 0.31% 0.38%
Instructions are HURT.

total cycles in shared programs: 239420470 -> 239421690 (<.01%)
cycles in affected programs: 2925992 -> 2927212 (0.04%)
helped: 49
HURT: 157
helped stats (abs) min: 2 max: 284 x̄: 62.69 x̃: 70
helped stats (rel) min: 0.04% max: 6.20% x̄: 1.68% x̃: 1.96%
HURT stats (abs)   min: 2 max: 48 x̄: 27.34 x̃: 24
HURT stats (rel)   min: 0.02% max: 2.91% x̄: 0.31% x̃: 0.20%
95% mean confidence interval for cycles value: -0.80 12.64
95% mean confidence interval for cycles %-change: -0.31% <.01%
Inconclusive result (value mean confidence interval includes 0).

GM45
total instructions in shared programs: 4985517 -> 4986207 (0.01%)
instructions in affected programs: 306935 -> 307625 (0.22%)
helped: 14
HURT: 625
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 0.35% max: 0.82% x̄: 0.52% x̃: 0.49%
HURT stats (abs)   min: 1 max: 3 x̄: 1.13 x̃: 1
HURT stats (rel)   min: 0.12% max: 3.90% x̄: 0.34% x̃: 0.22%
95% mean confidence interval for instructions value: 1.04 1.12
95% mean confidence interval for instructions %-change: 0.29% 0.36%
Instructions are HURT.

total cycles in shared programs: 153827268 -> 153828052 (<.01%)
cycles in affected programs: 1669290 -> 1670074 (0.05%)
helped: 24
HURT: 84
helped stats (abs) min: 2 max: 232 x̄: 64.33 x̃: 67
helped stats (rel) min: 0.04% max: 4.62% x̄: 1.60% x̃: 1.94%
HURT stats (abs)   min: 2 max: 48 x̄: 27.71 x̃: 24
HURT stats (rel)   min: 0.02% max: 2.66% x̄: 0.34% x̃: 0.14%
95% mean confidence interval for cycles value: -1.94 16.46
95% mean confidence interval for cycles %-change: -0.29% 0.11%
Inconclusive result (value mean confidence interval includes 0).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12191>
(cherry picked from commit 38807ceeae)
2021-08-12 10:06:57 -07:00
Dave Airlie
9b619ba386 crocus: align staging resource pitch on gen4/5 to allow BLT usage.
Aligning the pitch to 4 bytes allows the BLT engine to be used for
transfers to/from these surfaces.

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12329>
(cherry picked from commit 593ad9294b)
2021-08-12 10:06:57 -07:00
Dave Airlie
76a0aced29 crocus/blt: add pitch/offset checks to fix blt corruption
I lost these in my conversion from i965 but they are necessary.

This should fix corruption in qt fonts at seen in the minecraft
launcher.

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12329>
(cherry picked from commit 58e95f99bd)
2021-08-12 10:06:57 -07:00
Dylan Baker
39a91b3d3a .pick_status.json: Update to 688d11e4e8 2021-08-12 10:06:57 -07:00
Ian Romanick
5fb386c48d Revert "nir/algebraic: Convert some f2u to f2i"
Per https://gitlab.freedesktop.org/mesa/mesa/-/issues/5178#note_1019666,
the assumption fundamental to this optimization is false.  Section
2.4.1 (Float to Integer) of Ivy Bridge PRMs describes the situation.
The wording of the section is somewhat confusing (because it doesn't
clearly delineate between signed and unsigned integers), but the last
two rows of the table make it clear that F->UD conversion clamps
negative float values to 0.

All other hardware mentioned in that thread seems to behave the same
way.

The real problem is that, with hardware that behaves in this ways,
converting f2u(2147483648.0) to f2i(2147483648.0) changes the bit pattern
that would be produced from 0x80000000 to 0x7fffffff.

This reverts commit ad05920258.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12297>
(cherry picked from commit 84d2e53789)
2021-08-12 10:06:57 -07:00
Lionel Landwerlin
6d2727b2dc nir/lower_shader_calls: remove empty phis
This is confusing opt_cse.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11953>
(cherry picked from commit 01b0935d31)
2021-08-12 10:06:57 -07:00
Marcin Ślusarz
bcf16071a7 nir/builder: invalidate metadata per function
Fixes: a62098fff2 ("nir: Add a helper for general instruction-modifying passes.")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12324>
(cherry picked from commit e1b325f587)
2021-08-12 10:06:57 -07:00
Icecream95
1e4967c184 pan/bi: Use the computed scale for fexp NaN propagation
This makes pow(NaN, x) return NaN rather than 1.0.

Fixes: 499397700c ("pan/bi: Don't lower fpow")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5189
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12269>
(cherry picked from commit ee2bb57f1e)
2021-08-12 10:06:57 -07:00
Eric Engestrom
c64a3bc148 pick-ui: show commit date
With our ff-only merge setup, the commit date ends up being when the
commit actually landed (as opposed to when it was first written).

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12289>
(cherry picked from commit 4128acdee3)
2021-08-12 10:06:57 -07:00
Eric Engestrom
e2d700117b pick-ui: show nomination type in the UI
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12289>
(cherry picked from commit 7ec42b5eda)
2021-08-12 10:06:57 -07:00
Eric Engestrom
56c084a749 pick-ui: drop assert that optional argument is passed
Let's just make it not-optional instead.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12289>
(cherry picked from commit db14f2a932)
2021-08-12 10:06:57 -07:00
Alyssa Rosenzweig
0a1f12a488 nir/lower_mediump: Fix metadata in all passes
Fixes: fb29cef8dd ("nir: add many passes that lower and optimize 16-bit input/outputs and samplers")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11732>
(cherry picked from commit 9b57a81815)
2021-08-12 10:06:57 -07:00
Alyssa Rosenzweig
4b0f88e7e5 nir/lower_mediump_io: Don't remap base unless needed
Otherwise drivers that don't use 16-bit slots for varyings will get
confused and have their driver_locations scribbled over. This has caused
multiple problems for both Panfrost and Asahi this week. Given the only
other user of the pass for varyings is radeonsi, which needs both
together, I think this is the least controversial fix.

Fixes: fb29cef8dd ("nir: add many passes that lower and optimize 16-bit input/outputs and samplers")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11732>
(cherry picked from commit 03c18f7efc)
2021-08-12 10:06:57 -07:00
Dylan Baker
b750b385cf .pick_status.json: Update to 01b0935d31 2021-08-12 10:06:57 -07:00
Tapani Pälli
71876890b6 crocus: disable depth and d+s formats with memory objects
This is similar to i965 commit ba11f673a2, we set depth and
d+s formats unsupported for now.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12330>
2021-08-12 06:32:53 +10:00
Tapani Pälli
962178d5ab crocus: take a reference to memobj bo in crocus_resource_from_memobj
This is the same fix as commit 2d87ea3166 for iris driver.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12330>
2021-08-12 06:32:49 +10:00
Dave Airlie
51310d7c30 intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5
This is the equivalent of idr's
intel/fs: sel.cond writes the flags on Gfx4 and Gfx5

except for the vec4 backend.

This fixes buggy rendering seen with crocus on a qt trace.

v2 (idr): Trivial whitespace change.  Add unit tests.

v3: Fix type in comment in unit tests.  Noticed by Jason and Priit.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>

Iron Lake
total instructions in shared programs: 8183077 -> 8184543 (0.02%)
instructions in affected programs: 198990 -> 200456 (0.74%)
helped: 0
HURT: 1355
HURT stats (abs)   min: 1 max: 8 x̄: 1.08 x̃: 1
HURT stats (rel)   min: 0.29% max: 6.00% x̄: 0.99% x̃: 0.70%
95% mean confidence interval for instructions value: 1.04 1.12
95% mean confidence interval for instructions %-change: 0.96% 1.03%
Instructions are HURT.

total cycles in shared programs: 238967672 -> 238962784 (<.01%)
cycles in affected programs: 4666014 -> 4661126 (-0.10%)
helped: 406
HURT: 314
helped stats (abs) min: 4 max: 54 x̄: 22.46 x̃: 18
helped stats (rel) min: <.01% max: 12.80% x̄: 1.82% x̃: 0.65%
HURT stats (abs)   min: 2 max: 112 x̄: 13.48 x̃: 12
HURT stats (rel)   min: <.01% max: 7.82% x̄: 0.81% x̃: 0.16%
95% mean confidence interval for cycles value: -8.60 -4.98
95% mean confidence interval for cycles %-change: -0.87% -0.49%
Cycles are helped.

GM45
total instructions in shared programs: 4986888 -> 4988354 (0.03%)
instructions in affected programs: 198990 -> 200456 (0.74%)
helped: 0
HURT: 1355
HURT stats (abs)   min: 1 max: 8 x̄: 1.08 x̃: 1
HURT stats (rel)   min: 0.29% max: 6.00% x̄: 0.99% x̃: 0.70%
95% mean confidence interval for instructions value: 1.04 1.12
95% mean confidence interval for instructions %-change: 0.96% 1.03%
Instructions are HURT.

total cycles in shared programs: 153577826 -> 153572938 (<.01%)
cycles in affected programs: 4666014 -> 4661126 (-0.10%)
helped: 406
HURT: 314
helped stats (abs) min: 4 max: 54 x̄: 22.46 x̃: 18
helped stats (rel) min: <.01% max: 12.80% x̄: 1.82% x̃: 0.65%
HURT stats (abs)   min: 2 max: 112 x̄: 13.48 x̃: 12
HURT stats (rel)   min: <.01% max: 7.82% x̄: 0.81% x̃: 0.16%
95% mean confidence interval for cycles value: -8.60 -4.98
95% mean confidence interval for cycles %-change: -0.87% -0.49%
Cycles are helped.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12330>
2021-08-12 06:31:23 +10:00
Ian Romanick
e71eb0f2ea intel/fs: sel.cond writes the flags on Gfx4 and Gfx5
On Gfx4 and Gfx5, sel.l (for min) and sel.ge (for max) are implemented
using a separte cmpn and sel instruction.  This lowering occurs in
fs_vistor::lower_minmax which is called very, very late... a long, long
time after the first calls to opt_cmod_propagation.  As a result,
conditional modifiers can be incorrectly propagated across sel.cond on
those platforms.

No tests were affected by this change, and I find that quite shocking.
After just changing flags_written(), all of the atan tests started
failing on ILK.  That required the change in cmod_propagatin (and the
addition of the prop_across_into_sel_gfx5 unit test).

Shader-db results for ILK and GM45 are below.  I looked at a couple
before and after shaders... and every case that I looked at had
experienced incorrect cmod propagation.  This affected a LOT of apps!
Euro Truck Simulator 2, The Talos Principle, Serious Sam 3, Sanctum 2,
Gang Beasts, and on and on... :(

I discovered this bug while working on a couple new optimization
passes.  One of the passes attempts to remove condition modifiers that
are never used.  The pass made no progress except on ILK and GM45.
After investigating a couple of the affected shaders, I noticed that
the code in those shaders looked wrong... investigation led to this
cause.

v2: Trivial changes in the unit tests.

v3: Fix type in comment in unit tests.  Noticed by Jason and Priit.

v4: Tweak handling of BRW_OPCODE_SEL special case.  Suggested by Jason.

Fixes: df1aec763e ("i965/fs: Define methods to calculate the flag subset read or written by an fs_inst.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Tested-by: Dave Airlie <airlied@redhat.com>

Iron Lake
total instructions in shared programs: 8180493 -> 8181781 (0.02%)
instructions in affected programs: 541796 -> 543084 (0.24%)
helped: 28
HURT: 1158
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 0.35% max: 0.86% x̄: 0.53% x̃: 0.50%
HURT stats (abs)   min: 1 max: 3 x̄: 1.14 x̃: 1
HURT stats (rel)   min: 0.12% max: 4.00% x̄: 0.37% x̃: 0.23%
95% mean confidence interval for instructions value: 1.06 1.11
95% mean confidence interval for instructions %-change: 0.31% 0.38%
Instructions are HURT.

total cycles in shared programs: 239420470 -> 239421690 (<.01%)
cycles in affected programs: 2925992 -> 2927212 (0.04%)
helped: 49
HURT: 157
helped stats (abs) min: 2 max: 284 x̄: 62.69 x̃: 70
helped stats (rel) min: 0.04% max: 6.20% x̄: 1.68% x̃: 1.96%
HURT stats (abs)   min: 2 max: 48 x̄: 27.34 x̃: 24
HURT stats (rel)   min: 0.02% max: 2.91% x̄: 0.31% x̃: 0.20%
95% mean confidence interval for cycles value: -0.80 12.64
95% mean confidence interval for cycles %-change: -0.31% <.01%
Inconclusive result (value mean confidence interval includes 0).

GM45
total instructions in shared programs: 4985517 -> 4986207 (0.01%)
instructions in affected programs: 306935 -> 307625 (0.22%)
helped: 14
HURT: 625
helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
helped stats (rel) min: 0.35% max: 0.82% x̄: 0.52% x̃: 0.49%
HURT stats (abs)   min: 1 max: 3 x̄: 1.13 x̃: 1
HURT stats (rel)   min: 0.12% max: 3.90% x̄: 0.34% x̃: 0.22%
95% mean confidence interval for instructions value: 1.04 1.12
95% mean confidence interval for instructions %-change: 0.29% 0.36%
Instructions are HURT.

total cycles in shared programs: 153827268 -> 153828052 (<.01%)
cycles in affected programs: 1669290 -> 1670074 (0.05%)
helped: 24
HURT: 84
helped stats (abs) min: 2 max: 232 x̄: 64.33 x̃: 67
helped stats (rel) min: 0.04% max: 4.62% x̄: 1.60% x̃: 1.94%
HURT stats (abs)   min: 2 max: 48 x̄: 27.71 x̃: 24
HURT stats (rel)   min: 0.02% max: 2.66% x̄: 0.34% x̃: 0.14%
95% mean confidence interval for cycles value: -1.94 16.46
95% mean confidence interval for cycles %-change: -0.29% 0.11%
Inconclusive result (value mean confidence interval includes 0).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12330>
2021-08-12 06:31:23 +10:00
Dave Airlie
c24604acb8 crocus: align staging resource pitch on gen4/5 to allow BLT usage.
Aligning the pitch to 4 bytes allows the BLT engine to be used for
transfers to/from these surfaces.

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12330>
2021-08-12 06:31:23 +10:00
Dave Airlie
d9287281d1 crocus/blt: add pitch/offset checks to fix blt corruption
I lost these in my conversion from i965 but they are necessary.

This should fix corruption in qt fonts at seen in the minecraft
launcher.

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12330>
2021-08-12 06:31:23 +10:00
Bas Nieuwenhuizen
403e7213b2 radv: Use correct signedness in misalign test.
Lots of the MAX2 args end up subtracting two unsigned numbers, which
blows up when the result is negative.

Fixes: 4c99d6ff54 ("radv: flush L2 for images affected by the pipe misaligned issue on GFX10+")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12272>
(cherry picked from commit b2b1e8e40a)

Conflicts:
	src/amd/vulkan/radv_image.c
2021-08-10 11:16:50 -07:00
Marcin Ślusarz
b17e7ddbae glsl: evaluate switch expression once
v2: intialize test_val in constructor

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5185

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Cc: mesa-stable
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12234>
(cherry picked from commit bdae3c366e)
2021-08-10 10:36:54 -07:00
Lucas Stach
de052dfae4 etnaviv: always try to create KMS side handles for imported resources
By creating the KMS side handles we allow GBM to return the proper KMS
side GEM handles for imported buffers. Always creating the KMS side
handles adds a bit of overhead, as we don't need them on all imported
resources, but seems like the most robust solution for now.

Cc: mesa-stable
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12018>
(cherry picked from commit 826f95778a)
2021-08-10 10:36:54 -07:00
Lucas Stach
c8812a86b2 renderonly: don't complain when GPU import fails
There are a number of drivers which do a trial-and-error import
of buffers into the KMS side via renderonly. Some of those imports
are expected to fail, so we should not print a error message in
this case. All callers do proper error handling themselves.

Cc: mesa-stable
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12018>
(cherry picked from commit 1bc22a2eab)
2021-08-10 10:36:53 -07:00
Dylan Baker
936b18f89e .pick_status.json: Update to 0dd0a92b24 2021-08-10 10:36:48 -07:00
Thong Thai
ae1c19cc9e frontends/va/postproc: Keep track of deinterlacing method being used
When transcoding a video, the context used by decode/postproc process
might be different from that of the encoder, but we encoder needs to
know if deinterlacing was used.

Fixes: c5088b4972 ("gallium: Fix VAAPI postproc blit")
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12251>
(cherry picked from commit 3cafe333e9)
2021-08-09 14:46:36 -07:00
Thong Thai
50c6394450 gallium/util: add half texel offset param to util_compute_blit
Fixes an issue where the video image is blurry after blitting.

Fixes: c5088b4972 ("gallium: Fix VAAPI postproc blit")
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12251>
(cherry picked from commit 5dace8e0fb)
2021-08-09 14:46:36 -07:00
Thong Thai
94acf7bfaf gallium/auxiliary/vl: Add additional deinterlace enum and tracking
Add additional deinterlace enums and a deinterlace field to the
vl_compositor struct, so we can keep track of which deinterlacing
algorithm is currently being used, if any.

Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12251>
(cherry picked from commit 675508dd81)
2021-08-09 14:46:36 -07:00
Samuel Pitoiset
2c5f49cb3d radv: flush caches before performing separate depth/stencil aspect init
It's a RMW operation, also note that DB doesn't use L2 on GFX6-8.

Fixes test_clear_depth_stencil_view() and test_discard_resource() tests
from vkd3d-proton.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12223>
(cherry picked from commit 7ae3881a4b)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
292c7163c8 radv: Allocate space for inline push constants.
In the compute dispatch path we do not allocate a huge amount
of space to cover everything so the individual functions have to
allocate. This was missing here, causing a hang in Cyberpunk when
accessing the system menu at some locations with thread tracing
enabled.

Fixes: bd1186572f ("radv: add support for push constants inlining when possible")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12271>
(cherry picked from commit 02b6015945)
2021-08-09 14:46:36 -07:00
Boris Brezillon
8d018d2dba panfrost: Fix pan_blitter_emit_bifrost_blend()
If we return inside a pan_pack() the descriptor packing doesn't happen.

Cc: mesa-stable
Fixes: 8ba2f9f698 ("panfrost: Create a blitter library to replace the existing preload helpers")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12239>
(cherry picked from commit 06fc6e46f0)
2021-08-09 14:46:36 -07:00
Rhys Perry
8446f10145 nir/algebraic: fix imod by negative power-of-two
If "a" is a multiple of "b", then the result would have been "b" instead
of 0.

No fossil-db changes.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Fixes: 0ef5f3552f ("nir: add strength reduction pattern for imod/irem with pow2 divisor.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12039>
(cherry picked from commit ec4b425f59)
2021-08-09 14:46:36 -07:00
Samuel Pitoiset
c63674ee71 radv: fix initializing the DS clear metadata value for separate aspects
We shouldn't overwrite the clear value of the other aspect (in case
separate depth/stencil layouts are used).

Found by inspection.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12222>
(cherry picked from commit 1db36422b9)
2021-08-09 14:46:36 -07:00
Pierre-Eric Pelloux-Prayer
ee5df9e744 radeonsi: don't create an infinite number of variants
If a shader has code like this:

   uniform float timestamp;
   ...
   if (timestamp > 0.0)
      do_something()

And timestamp is modified each frame, we'll end up generating a new
variant per frame.

This commit introduces a hard limit on the number of variants we generate
for a single shader.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5121
Fixes: b7501184b9 ("radeonsi: implement inlinable uniforms")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12138>
(cherry picked from commit 9fe8ae3fcd)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
ccf4743977 util/fossilize_db: Add extra flock mutex.
The flock is per-fd, not per thread, and we do it outside of the main mutex. This was
done to avoid having to wait in the mutex, but we can get a case where one ends up running
the body with the flock unlocked.

Fix this by adding a mutex that doesn't need to be locked for reads.

Fixes: 4f0f8133a3 "util/fossilize_db: Do not lock the fossilize db permanently."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12266>
(cherry picked from commit 30a359d633)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
07581c4842 util/fossilize_db: Unlock the cache file if the entry already exists.
Fixes: 4f0f8133a3 "util/fossilize_db: Do not lock the fossilize db permanently."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12266>
(cherry picked from commit 75266ee44a)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
7b2a115225 util/fossilize_db: Use uint64_t for file size.
For those 32-bit systems with 4G of cache.

Fixes: 2ec1bff0f3 "util/fossilize_db: Split out reading the index."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12266>
(cherry picked from commit 1c4dce1aa7)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
ee56d2c88a util/fossilize_db: Only allocate entries after full read.
Should void leaking entries on read failure.

Fixes: 2ec1bff0f3 "util/fossilize_db: Split out reading the index."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12204>
(cherry picked from commit d2d642cc01)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
8441124d0b util/fossilize_db: Be conservative about header length check for locking.
Don't anticipate seeing any partial written headers but just in case we
should probably wait on the lock to make sure whatever header was being
written is finished being written.

Fixes: 4f0f8133a3 "util/fossilize_db: Do not lock the fossilize db permanently."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12204>
(cherry picked from commit 96bfefe8d1)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
b2d326fba1 util/fossilize_db: Flush files after header write.
We should probably flush before we unlock the file again.

Fixes: 4f0f8133a3 "util/fossilize_db: Do not lock the fossilize db permanently."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12204>
(cherry picked from commit 3091277052)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
15df61065d util/fossilize_db: Reset file position to parsed_offset on cache_offset read failure.
Otherwise we might restart reading from the middle of the entry.

Fixes: 2ec1bff0f3 "util/fossilize_db: Split out reading the index."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12204>
(cherry picked from commit 57ca07455c)
2021-08-09 14:46:36 -07:00
Bas Nieuwenhuizen
8d52e3cd38 util/fossilize_db: Update parsed_offset correctly.
If things went perfectly parsed_offset was never updated for the
final entry and we'd seek_set to the start of the last entry. Is
fun when appending to the file next.

Fixes: 2ec1bff0f3 "util/fossilize_db: Split out reading the index."
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12204>
(cherry picked from commit 3c51a3aa95)
2021-08-09 14:46:36 -07:00
Chia-I Wu
568bbe0dd2 venus: free queues after vkDestroyDevice is emitted
Otherwise, another thread might reuse their object ids for other
objects.  For example,

  T1: free queue with object id X
  T2: reuse id X
  T2: emit vkCreateFoo with id X
  T1: emit vkDestroyDevice

virglrenderer happily accepts that which leads to double frees of the
queue: once when X is updated to point to another object and once when
vkDestroyDevice is executed.  virglrenderer should be fixed to catch
such invalid object id reuse as well.

Fixes
dEQP-VK.api.object_management.multithreaded_shared_resources.device_group.

Fixes: ddd7533055 ("venus: initial support for queue/fence/semaphore")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12252>
(cherry picked from commit da000ea2ef)
2021-08-09 14:46:36 -07:00
Dylan Baker
366abaca17 .pick_status.json: Update to 7ae3881a4b 2021-08-09 14:46:36 -07:00
Dave Airlie
3e228bc8a9 wl/shm: don't fetch formats if not requested.
This aligns the code with the drm format code

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11959>
2021-08-06 18:18:50 +00:00
Charmaine Lee
a7f1ebda2c aux/draw: Check for preferred IR to take nir-to-tgsi path in draw module
When a vertex program is translated to nir, it uses
nir_to_tgsi_compile_options for drivers with only nir-to-tgsi based
NIR support. But this compile option might not be the same as the NIR
compile option from llvmpipe, hence when the nir shader is bound
to the draw module, it hits an assertion in do_alu_action() when
encounters nir_op_fdot3.

With this patch, draw will take the nir-to-tgsi path if preferred IR
from the driver is TGSI.

Fixes assert running Maya on SVGA device.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Cc: 21.2 mesa-stable

(cherry picked from commit 6751d832c5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12200>
2021-08-06 18:00:37 +00:00
Neha Bhende
3fd0ced541 aux/draw: use nir_to_tgsi for draw shader in llvm path
Some drivers doesn't support PIPE_SHADER_CAP_INTEGERS.
This leads to using load_ubo_vec4 which throws llvmpipe off the guard since
it doesn't expect load_ubo_vec4 in shader. Use nir_to_tgsi utility in
such a case.

This fixes crash seen with conform's mustpass.c, select.c and feedback.c.
Also, few gl-select related piglit tests exhibit same crash. Found in vmware's
internal testing

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Emma Anholt <emma@anholt.net>

v2: incorporated Emma's comments. Added check for PIPE_SHADER_CAP_INTEGERS and
remove PIPE_SHADER_IR_TGSI check

v3: As per Emma's comment, removed expected crashes for i915 piglit

v4: update expetcted passes

(cherry picked from commit b5e782f5f4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12200>
2021-08-06 18:00:37 +00:00
Timur Kristóf
8d64d80d0a radv: Write RSRC2_GS for NGGC when pipeline is dirty but not emitted.
The radv_emit_ngg_culling_state function won't write the
SPI_SHADER_PGM_RSRC2_GS register when it knows in advance that
radv_emit_graphics_pipeline will overwrite it anyway.

However, there is an unhandled case:

radv_emit_graphics_pipeline will not emit anything (including this
register) when the pipeline is already emitted. Hence, improve
the check in radv_emit_ngg_culling_state to consider this.

Fixes: 9a95f5487f
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12237>
(cherry picked from commit 74181ffcc5)
2021-08-06 10:24:24 -07:00
Pierre-Eric Pelloux-Prayer
57dfde801d st/pbo: set nir_tex_instr::is_array field
Otherwise the layer argument won't be used.

Fixes: a01ad311 ("st/mesa: Add NIR versions of the PBO upload/download shaders. ")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12096>
(cherry picked from commit d2845cfcc4)
2021-08-06 10:24:24 -07:00
Pierre-Eric Pelloux-Prayer
54ba58e68e st/pbo: only use x coord when reading a PIPE_TEXTURE_1D
This fixes the following NIR validation error in the
st/pbo download FS:

	vec2 32 ssa_14 = mov ssa_4.xy
	vec2 32 ssa_15 = f2i32 ssa_14
	vec1 32 ssa_16 = deref_var &tex (uniform sampler1D)
	vec4 32 ssa_17 = (float32)txf ssa_16 (texture_deref), ssa_16 (sampler_deref), ssa_15 (coord)
error: nir_src_num_components(instr->src[i].src) == instr->coord_components (../src/compiler/nir/nir_validate.c:839)

With this change, the FS becomes:

	vec4 32 ssa_2 = intrinsic load_frag_coord () ()
	vec1 32 ssa_3 = f2i32 ssa_2.x
	[...]
	vec1 32 ssa_9 = deref_var &tex (uniform sampler1D)
	vec4 32 ssa_10 = (float32)txf ssa_9 (texture_deref), ssa_9 (sampler_deref), ssa_3 (coord), ssa_0 (lod)

Fixes: a01ad311 ("st/mesa: Add NIR versions of the PBO upload/download shaders. ")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12096>
(cherry picked from commit ff7e339f1f)
2021-08-06 10:24:23 -07:00
Lionel Landwerlin
da56d74a45 anv: don't try to access Android swapchains
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5180
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12217>
(cherry picked from commit bc3c71b87a)
2021-08-06 10:24:22 -07:00
Dylan Baker
8e592e7581 .pick_status.json: Update to 0165fde82c 2021-08-06 10:24:19 -07:00
Chia-I Wu
1014272452 iris, crocus: add idep_genxml to per_hw target dependencies
Fixes

  In file included from ../src/gallium/drivers/iris/iris_query.c:49:
  ../src/gallium/drivers/iris/iris_genx_macros.h:81:10: fatal error: genxml/genX_bits.h: No such file or directory

and

  In file included from ../src/gallium/drivers/crocus/crocus_query.c:50:
  ../src/gallium/drivers/crocus/crocus_genx_macros.h:86:10: fatal error: genxml/genX_bits.h: No such file or directory

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12149>
(cherry picked from commit b4214adefc)
2021-08-05 09:35:29 -07:00
Dylan Baker
a96c2c5d7a bin/gen_release_notes: Fix commits with multiple Closes:
Currently we'd only handle the last one, not all of them. Which is
clearely not correct.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12201>
(cherry picked from commit da00a11bf2)
2021-08-05 09:26:05 -07:00
Dylan Baker
8e3b3f93a7 bin/gen_release_notes: Don't consider issues for other projects
We have enough commits in mesa that have external dependencies that we
need to be sure that a Closes: https://... is actually for mesa and not
for another project.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12201>
(cherry picked from commit 30f7b55e47)
2021-08-05 09:25:52 -07:00
Dylan Baker
d65d0603e3 bin/gen_release_notes: Add basic tests for parsing issues
Since test coverage here is pretty important for a heuristic like this.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12201>
(cherry picked from commit 9dc3672b00)
2021-08-05 09:25:39 -07:00
Michel Dänzer
3cb4a9ec0c ci: Drop "success" job
It was added to make sure every pipeline for a merge request has at
least one job which passes (otherwise it's not possible to merge the
MR). Now the "sanity" job always exists in such pipelines, so this
isn't needed anymore.

Fixes: 4c41d1900e "ci: Add jobs running ci-fairy checks"
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12198>
(cherry picked from commit 6ccf11ac2b)
2021-08-05 09:25:17 -07:00
Mike Blumenkrantz
260d1ecf1e zink: simplify else clause for mem info gathering
it doesn't matter if this is host-visible, it just has to not be device-local

Fixes: 73f6bff07f ("zink: fix mem info query to be more permissive")

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12199>
(cherry picked from commit c886ce2991)
2021-08-05 09:25:16 -07:00
Mike Blumenkrantz
d634d31c32 zink: sum available memory heaps instead of assigning
this is supposed to accumulate now

Fixes: 73f6bff07f ("zink: fix mem info query to be more permissive")

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12199>
(cherry picked from commit 42442a0d4e)
2021-08-05 09:25:16 -07:00
Dylan Baker
77c2a702df .pick_status.json: Update to 6ccf11ac2b 2021-08-05 09:25:13 -07:00
Timur Kristóf
84dde64fd3 aco: Use Navi 10 empty NGG output workaround on NGG culling shaders.
Navi 10 can hang when an NGG workgroup has no output,
so we work around that by always exporting a single zero-area
triangle with a single vertex that has all-NaN coordinates.

Thus far, we only employed this for NGG GS, because on all
other stages, the output can't be empty.

However, with NGG culling, the output can be empty, so let's
apply the same workaround there too.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12169>
(cherry picked from commit 448592b9ae)
2021-08-04 12:08:10 -07:00
Dave Airlie
217ed59b5d virgl: disable anisotropic filtering.
virgl doesn't yet support anisotropic filtering so don't advertise it.

Fixes: a8987b88ff ("virgl: add driver for virtio-gpu 3D (v2)")
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11944>
(cherry picked from commit e831c4a537)
2021-08-04 12:08:09 -07:00
Dylan Baker
a4e7d73f7a .pick_status.json: Update to 8918a809ce 2021-08-04 12:08:03 -07:00
Dylan Baker
e2889fb2d1 docs: Add sha256 sum for 21.2.0 2021-08-04 12:07:28 -07:00
Dylan Baker
33595f88d6 VERSION: bump for 21.2.0 release 2021-08-04 11:47:36 -07:00
Dylan Baker
c0623dbe16 docs: clear new_features for 21.2.0 release 2021-08-04 11:47:19 -07:00
Dylan Baker
2eb92dec11 docs: add release notes for 21.2.0 2021-08-04 11:44:40 -07:00
Lionel Landwerlin
18b65515a6 intel/disasm: fix missing oword index decoding
Also switch to array of strings to show high/low dwords.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: daba2894ff ("intel/disasm: decode/describe more send messages")
Acked-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12183>
(cherry picked from commit 97be8e42e4)
2021-08-03 11:07:19 -07:00
Pierre Moreau
ecfa127381 clover/nir: Set constant buffer pointer size to host
The `argument::size` is supposed to represent the size of a pointer on
the host and not on the device (for which argument::target_size`
exists).

v3: Use `sizeof(buf)` instead of `marg.size`. (Francisco Jerez)

Fixes: 7c6f1d3bf9 ("clover/nir: extract constant buffer into its own section")

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10256>
(cherry picked from commit b4e5bf0637)
2021-08-03 11:07:18 -07:00
Pierre Moreau
90645f3eea clover/spirv: Properly size 3-component vector args
This resolves clover returning `CL_INVALID_ARG_SIZE` whenever the OpenCL
CTS called `clSetKernelArg()` for 3-component vectors.

Fixes: 2147386505 ("clover/spirv: Add functions for parsing arguments, linking programs, etc.")

v2: Remove “api/clsetkernelarg/set kernel argument for cl_int3” from the
  expected fails for llvmpipe

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10256>
(cherry picked from commit a6c26a6ad9)
2021-08-03 11:07:17 -07:00
Erik Faye-Lund
432964005b d3d12: split up root parameter update and set
SRV descriptors can require state-transitions before it's legal to set
them on the command-list. We used to just set them right away, and get
away with is, because the validator didn't verify this because we used
to flag the parameters as volatile.

Now that we don't, we trigger validation errors when setting a root
parameter that needs a transition first.

So let's split up the logic a bit, so we can prepare the tables, then do
the transision, and finally set the tables. We do this for all tables
instead of just the SRVs, just because it makes the logic a bit easier to
follow. We leave root constants alone, because they will never require
this, and doing them late would just compilcate things.

Fixes: 1208290558 ("d3d12: Sets all SRV descriptors as data-static")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12187>
(cherry picked from commit cd79351f02)
2021-08-03 11:07:17 -07:00
Juan A. Suarez Romero
a5dec10d83 gallium/hud: initialize query
Most of the drivers don't set up the maximum value in the query info. So
when later hud_pane_set_max_value() is invoked, we are using a rather
"random" number.

Turns out that in some 32bit cases, this random number is big enough
that `leftmost_digit` is 0 because DIV_ROUND_UP() overflows, aborting
with an assertion.

Fixes: c91cf7d7d2 ("gallium: implement a heads-up display module")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12181>
(cherry picked from commit 10541d1fad)
2021-08-03 11:07:16 -07:00
Samuel Pitoiset
1d02d0743d radv: fix missing cache flushes when clearing HTILE levels on GFX10+
The driver should accumulate the cache flush bits because if it uses
CP DMA for clearing the last level, it won't flush.

Found by inspection.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12170>
(cherry picked from commit ad83c06a5f)
2021-08-03 11:07:16 -07:00
Samuel Pitoiset
5b4b4b9ef6 radv: fix selecting the first active CU when profiling with SQTT
Fixes: d26bcc0f5c ("radv: always select the first active CU when profiling with SQTT")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12167>
(cherry picked from commit ebea075feb)
2021-08-03 11:07:15 -07:00
Timothy Arceri
7deef80ef6 intel/compiler: make sure swizzle is applied to if condition
This fixes a hang in the following piglit test when GCM moves a
UBO load outside of the loop.

tests/shaders/ssa/fs-if-def-else-break.shader_test

The end NIR ends up looking like this:

	vec2 32 ssa_3 = intrinsic load_ubo (ssa_2, ssa_0) (0, 1073741824, 0, 0, 8)
	vec1 32 ssa_4 = mov ssa_3.x
	vec1 32 ssa_5 = inot ssa_3.y
	/* succs: block_1 */
	loop {
           ...
           if ssa_5 { }
        }

Fixes: 1edf67fc3f ("intel/fs: Generate if instructions with inverted conditions")

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12064>
(cherry picked from commit a654e39f15)
2021-08-03 11:07:14 -07:00
Dylan Baker
1a1cf756d2 .pick_status.json: Update to 97be8e42e4 2021-08-03 11:07:12 -07:00
Dave Airlie
58bf0165ca crocus: add support for set alpha to one with blt.
This is ported from 965 and fixes
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.*rebind_tex2d_rgb*

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12164>
(cherry picked from commit 842b8c8965)
2021-08-02 13:30:09 -07:00
Dave Airlie
9fc8ae0cd5 intel/genxml: fix raster operation field in blt genxml
This field should be a uint, further changes on top of previous
ones in this area

Fixes: 4d80ec8fcf ("intel/genxml: fix raster op fields on gen4/5")
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12164>
(cherry picked from commit de625dddee)
2021-08-02 13:30:08 -07:00
Dave Airlie
5b99334ba3 crocus/gen45: fix mapping compressed textures
I don't think iris ever hits this path, but probably has the same bug if
it did.

Fixes texsubimage on gfx4 + gfx4.5

Fixes: 5bf6ec31cc ("crocus/gen4: restrict memcpy mapping to gen5")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12164>
(cherry picked from commit c12444ab88)
2021-08-02 13:30:08 -07:00
Yiwei Zhang
76a317170e venus: cache ahb backed buffer memory type bits requirement
To properly init buffer memory requirement for AHB, memory type bits
from dma_buf fd properties need to be masked. However, creating a test
AHB at buffer creation is too costy. This patch caches the ahb backed
buffer memory type bits at device creation time if the app is requesting
AHB extension.

Cc: 21.2 mesa-stable

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12171>
(cherry picked from commit e08960482a)
2021-08-02 13:30:07 -07:00
Lionel Landwerlin
97955560fd drm-shim: implement stat/fstat when xstat variants are not there
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 027095065d ("drm-shim: fix compile with glibc >= 2.33")
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12129>
(cherry picked from commit f86faee9f4)
2021-08-02 13:30:06 -07:00
Michel Zou
149473db82 meson: dont use missing dumpbin path
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Cc: 21.2 mesa-stable
Closes #5142

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12139>
(cherry picked from commit 80160a67ab)
2021-08-02 13:30:04 -07:00
Icecream95
720645a5b3 pan/mdg: Analyze helper termination after scheduling
Similar to the fix in 6bf8e960fa ("pan/bi: Do helper termination
analysis on clauses")

Though apparently a "theoretical issue only", fixes artefacts in
DarkPlaces with both D3D9 and GL renderers.

Fixes: 9a7f0e268b ("pan/mdg: Use the helper invo analyze passes")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12156>
(cherry picked from commit a2b37e9592)
2021-08-02 13:30:02 -07:00
Hoe Hao Cheng
7c2c2b9d2a zink: make codegen compatible with python 3.5
Fixes: f1432fd3 ("zink: generate extension infrastructure using a python script")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12137>
(cherry picked from commit 86250c7251)
2021-08-02 13:30:01 -07:00
Dylan Baker
075ec9e608 .pick_status.json: Update to 842b8c8965 2021-08-02 13:29:59 -07:00
Alyssa Rosenzweig
538e9f93c5 pan/bi: Remove incorrect errata workaround
This worked around a symptom of the underlying issue worked around in
the previous commit. This workaround is wrong in the sense of failing to
correct some broken code sequences and needlessly rejecting some working
code sequences.

total tuples in shared programs: 123770 -> 123630 (-0.11%)
tuples in affected programs: 9548 -> 9408 (-1.47%)
helped: 133
HURT: 0
helped stats (abs) min: 1.0 max: 2.0 x̄: 1.05 x̃: 1
helped stats (rel) min: 0.42% max: 16.67% x̄: 4.07% x̃: 1.15%
95% mean confidence interval for tuples value: -1.09 -1.01
95% mean confidence interval for tuples %-change: -4.98% -3.17%
Tuples are helped.

total cycles in shared programs: 12114.83 -> 12114.50 (<.01%)
cycles in affected programs: 34.08 -> 33.75 (-0.98%)
helped: 9
HURT: 1
helped stats (abs) min: 0.04166599999999998 max: 0.04166700000000034 x̄: 0.04 x̃: 0
helped stats (rel) min: 0.72% max: 12.50% x̄: 2.99% x̃: 2.04%
HURT stats (abs)   min: 0.04166700000000034 max: 0.04166700000000034 x̄: 0.04 x̃: 0
HURT stats (rel)   min: 0.62% max: 0.62% x̄: 0.62% x̃: 0.62%
95% mean confidence interval for cycles value: -0.05 -0.01
95% mean confidence interval for cycles %-change: -5.27% <.01%
Inconclusive result (%-change mean confidence interval includes 0).

total arith in shared programs: 4603.42 -> 4601.54 (-0.04%)
arith in affected programs: 50.50 -> 48.62 (-3.71%)
helped: 41
HURT: 1
helped stats (abs) min: 0.04166599999999998 max: 0.08333299999999999 x̄: 0.05 x̃: 0
helped stats (rel) min: 0.72% max: 33.33% x̄: 17.23% x̃: 13.33%
HURT stats (abs)   min: 0.04166700000000034 max: 0.04166700000000034 x̄: 0.04 x̃: 0
HURT stats (rel)   min: 0.62% max: 0.62% x̄: 0.62% x̃: 0.62%
95% mean confidence interval for arith value: -0.05 -0.04
95% mean confidence interval for arith %-change: -20.93% -12.69%
Arith are helped.

total quadwords in shared programs: 110116 -> 110009 (-0.10%)
quadwords in affected programs: 7829 -> 7722 (-1.37%)
helped: 106
HURT: 0
helped stats (abs) min: 1.0 max: 2.0 x̄: 1.01 x̃: 1
helped stats (rel) min: 0.49% max: 7.14% x̄: 1.91% x̃: 1.35%
95% mean confidence interval for quadwords value: -1.03 -0.99
95% mean confidence interval for quadwords %-change: -2.23% -1.59%
Quadwords are helped.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12114>
(cherry picked from commit be7d964ff0)
2021-07-30 10:13:30 -07:00
Alyssa Rosenzweig
2ca05ac293 pan/bi: Restrict swizzles on same cycle temporaries
Hand typed. We could generate this from the XML to avoid the repititon
but I think the cure is worse than the disease.

This fixes instruction encoding faults seen in conformance tests.

Only a single shader-db affected, and it was likely already broken...

quadwords HURT:   shaders/glmark/22-1.shader_test MESA_SHADER_FRAGMENT: 133 -> 135 (1.50%)

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12114>
(cherry picked from commit 2cdf95703a)

Conflicts:
	src/panfrost/bifrost/bi_schedule.c
2021-07-30 10:13:29 -07:00
Pierre-Eric Pelloux-Prayer
5b17ed9781 amd/registers: fix fields conflict detection
The existing code handled the case where the new definition of the
same field was larger than the old one.
This commit adds a check to handle the reverse case: the new def
is smaller than the old one (= so writing using the merged macro
would affect the next fields).

The affected fields are:
* LGKM_CNT (in SQ_WAVE_IB_STS)
* DONUT_SPLIT (in VGT_TESS_DISTRIBUTION)
* HEAD_QUEUE (in GDS_GWS_RESOURCE)

DONUT_SPLIT is the only one used by radeonsi/radv.

Fixes: e6184b0892 ("amd/registers: scripts for processing register descriptions in JSON")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12063>
(cherry picked from commit 3914bd457b)
2021-07-30 09:59:20 -07:00
Pierre-Eric Pelloux-Prayer
ce0e8e022d gallium/va: don't use key=NULL in hash tables
Add 1 to the key index otherwise we hit the following assert
in hash_table_insert:

   assert(!key_pointer_is_reserved(ht, key));

Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12105>
(cherry picked from commit 2ea88d7cea)
2021-07-30 09:59:19 -07:00
Dave Airlie
14f09b60e5 intel/fs: restrict max push length on older GPUs to a smaller amount
Fixes crash in dEQP-GLES2.functional.uniform_api.random.79

Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12093>
(cherry picked from commit c8783001c7)
2021-07-30 09:59:19 -07:00
Joshua Watt
ca5fbe8517 v3d, vc4: Fix dmabuf import for non-scanout buffers
Failure to create a buffer for scanout should not be fatal when
importing a buffer. Buffers allocated from a render-only device may not
be able to scanned out directly but can still be used for other
rendering purposes (e.g. as a texture).

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12081>
(cherry picked from commit 7bcb223639)
2021-07-30 09:59:18 -07:00
Simon Ser
39ffd918cd lima: fail in get_handle(TYPE_KMS) without a scanout resource
The previous logic was returning a handle valid for the render-only
device if rsc->scanout was NULL. However the caller doesn't expect
this: the caller will use the handle with the KMS device.

Instead of returning a handle for the wrong device, fail if we don't
have one.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12074>
(cherry picked from commit 47f000c170)
2021-07-30 09:59:13 -07:00
Simon Ser
4bb8e29a28 panfrost: fail in get_handle(TYPE_KMS) without a scanout resource
The previous logic was returning a handle valid for the render-only
device if rsc->scanout was NULL. However the caller doesn't expect
this: the caller will use the handle with the KMS device.

Instead of returning a handle for the wrong device, fail if we don't
have one.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12074>
(cherry picked from commit 4c092947df)
2021-07-30 09:59:13 -07:00
Simon Ser
4524e8bff8 freedreno: fail in get_handle(TYPE_KMS) without a scanout resource
The previous logic was returning a handle valid for the render-only
device if rsc->scanout was NULL. However the caller doesn't expect
this: the caller will use the handle with the KMS device.

Instead of returning a handle for the wrong device, fail if we don't
have one.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emma Anholt <emma@anholt.net>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12074>
(cherry picked from commit 465eb7864b)
2021-07-30 09:59:12 -07:00
Simon Ser
bda17c7388 etnaviv: fail in get_handle(TYPE_KMS) without a scanout resource
The previous logic was returning a handle valid for the render-only
device if rsc->scanout was NULL. However the caller doesn't expect
this: the caller will use the handle with the KMS device.

Instead of returning a handle for the wrong device, fail if we don't
have one.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12074>
(cherry picked from commit 9da901d2b2)
2021-07-30 09:59:12 -07:00
Simon Ser
1396ddcc4e etnaviv: fix renderonly check in etna_resource_alloc
When the driver hasn't been initialized via renderonly, screen->ro
will be NULL. This fixes a crash when passing USE_SCANOUT to etnaviv
when it's missing renderonly.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12074>
(cherry picked from commit 3b3cd51286)
2021-07-30 09:59:11 -07:00
Thomas H.P. Andersen
8b4a8972a8 nine: Fix assert in tx_src_param
A previous commit cleaned up the asserts but the last part of
this assert looks like it got mixed up. It should have allowed
param->rel for D3DSPR_INPUT if version is 3.0. Instead it does
&& on the enum value D3DSPR_ADDR which is of course always true,
with the version check. The result is that we miss input
validation with version 3.0.

Spotted by a compile warning

Fixes: 5974401a4a ("st/nine: Regroup param->rel tests")
Reviewed-by: Axel Davy davyaxel0@gmail.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11880>
(cherry picked from commit 71a5bcb865)
2021-07-30 09:59:10 -07:00
Dylan Baker
4f7b4ba7f8 .pick_status.json: Update to 87b0962fef 2021-07-30 09:59:08 -07:00
Dylan Baker
940cb9ebe9 .pick_status.json: Mark 8cb795b477 as denominated 2021-07-29 10:04:30 -07:00
Lionel Landwerlin
f3a523a9be anv: fix submission batching with perf queries
If we have 2 command buffers back to back, one with a query pool, one
without, we don't want to retain the second query pool value (NULL).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 0a7224f3ff ("anv: group as many command buffers into a single execbuf")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12107>
(cherry picked from commit b8e29e8936)
2021-07-29 09:05:43 -07:00
Erik Faye-Lund
f9107dbf71 lavapipe: do not mark unsupported tests as crashing
These were fixed previously, but due to the CI not really running all
tests any more, I didn't notice these fixes. Let's bring the expected
results up to date.

Fixes: 2e29857bb6 ("llvmpipe: only report supported shader-image formats")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12077>
(cherry picked from commit 0cfd1da8b3)
2021-07-29 09:05:43 -07:00
Juan A. Suarez Romero
ebcd657099 broadcom: remove v3dv3 from neon library
No need to build the simulator with NEON; and also v3dv3 simulator
is not for VC4, so don't inherit v3dv3 requirement when building vc4
driver.

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5126
Fixes: d198e26a1e ("broadcom/common: move v3d_tiling to common")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12078>
(cherry picked from commit fe9d2d2046)
2021-07-29 09:05:42 -07:00
Lionel Landwerlin
72eeeba333 nir/lower_shader_calls: adding missing stack offset alignment
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12112>
(cherry picked from commit 7e3bad0f8e)
2021-07-29 09:05:42 -07:00
Dylan Baker
947fd891bf freedreno/ir3: Add build id to the disassembler test
This is required (at least for me on x86) to get the tool to pass it's
own test, otherwise it fails the build_id assertion.

Fixes: 1462b00391
       ("freedreno/ir3: Add a unit test for our disassembler.")

Acked-by: Rob Clark <robclark@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12084>
(cherry picked from commit 097cf3952b)
2021-07-29 09:05:41 -07:00
Jesse Natalie
cfe3e2ff53 mesa/main: Check for fbo attachments when importing EGL images to textures
Fixes an assert when binding an fbo with a texture bound to one of its attachments,
if the texture was updated with an EGL image after it was bound.

Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11998>
(cherry picked from commit 3d64a97cf6)
2021-07-29 09:05:41 -07:00
Dylan Baker
ad0ba78934 .pick_status.json: Update to b8e29e8936 2021-07-29 09:05:11 -07:00
Connor Abbott
bfc6597375 ir3: Preserve gl_ViewportIndex in the binning shader
Fixes dEQP-VK.draw.shader_viewport_index.* with TU_DEBUG=forcebin.

Fixes: efff734220 ("turnip: multiViewport and VK_EXT_shader_viewport_index_layer")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12104>
(cherry picked from commit 7a14484bca)
2021-07-28 11:29:29 -07:00
Lionel Landwerlin
d06433f883 loader/dri3: create linear buffer with scanout support
If we have a different GPU dealing with display, we fallback to
exchanging linear buffers with the compositor. We should specify in
creating the linear buffer that this could be used for display.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4706
Cc: mesa-stable
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11942>
(cherry picked from commit f1a66e7c90)
2021-07-28 11:29:29 -07:00
Zhu Yuliang
5577fb807e gallium/vl: don't leak fd in vl_dri3_screen_create
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12092>
(cherry picked from commit b88fd3ccc0)
2021-07-28 11:29:28 -07:00
Erik Faye-Lund
6705d498f4 lavapipe: do not assert on more than 32 samplers
We can have more than 32 samplers, but the code below will assert in that
case. The return value is not used for samplers, so let's just return
zero early and be done with it.

Fixes: c18ff60087 ("lavapipe: emit correct textures_used for texture-arrays")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11845>
(cherry picked from commit bff8a948f7)
2021-07-28 11:29:28 -07:00
Chia-I Wu
d8402f2ff0 vulkan/wsi/x11: do not inherit last_present_mode
Under XWayland, the first present after a window resize is sometimes
completed with COPY (seems to happen when the previous present with the
old size is pending; not really sure).  The following presents are
completed with FLIP.

When a swapchain is created with an old swapchain, and
old_chain->last_present_mode is FLIP, chain->last_present_mode is set to
FLIP as well.  This causes the new swapchain to be marked
VK_SUBOPTIMAL_KHR, which is sticky, if the first present is completed
with COPY.

Instead of inheriting, treat each swapchain as independent.  We will
miss the case where an old swapchain is flipping but a new swapchain is
copying.  But swapchain reallocation normally happens in response to
present engine state change.  If the newly allocated swapchain is
copying, another reallocation is unlikely to fix that.

Fixes: 61309c2a72 ("vulkan/wsi/x11: Return VK_SUBOPTIMAL_KHR for X11")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12030>
(cherry picked from commit 206fe780d5)
2021-07-28 11:29:27 -07:00
Philipp Zabel
0e7985a7de etnaviv: fix gbm_bo_get_handle_for_plane for multiplanar images
Implement resource_get_param for PIPE_RESOURCE_PARAM_NPLANES and fix
resource_get_handle to walk to the correct linked resource for
multiplanar images, allowing gbm_bo_get_handle_for_plane to be called
with plane > 0.

This fixes an assert that is triggered when a wayland client tries
to send weston an NV12 dmabuf, for example:

  weston: .../mesa/src/gbm/backends/dri/gbm_dri.c:752: gbm_dri_bo_get_handle_for_plane: Assertion `plane == 0' failed.

Fixes: 788f6dc857 ('Revert "gallium/dri: fix dri2_from_planar for multiplanar images"')
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12037>
(cherry picked from commit 8ba44103b3)
2021-07-28 11:29:27 -07:00
Lepton Wu
1b886f20a7 gallium: Reset {d,r}Priv in dri_unbind_context
The code in dri_make_current just checks the value of the pointers
to decide to update texture_stamp or not. This is buggy since a new
allocated drawable could share the same address with the previous
released drawable. Fix the stale pointer issue by always resetting
these pointers to NULL in dri_unbind_context.

v2:
   Move the reset codes to the end of the function.

Signed-off-by: Lepton Wu <lepton@chromium.org>
Cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12050>
(cherry picked from commit 7ff30a0499)
2021-07-28 11:29:25 -07:00
Dylan Baker
b795fc4a28 .pick_status.json: Update to dff0d9911d 2021-07-28 11:29:23 -07:00
Dylan Baker
731f989135 VERSION: bump for 21.2.0-rc3 2021-07-28 10:51:57 -07:00
Yevhenii Kolesnikov
319818e9fd glsl: Properly handle .length() of an unsized array
There are two distinct cases:
- The last member of a shader storage block (length determined at run-time)
- Implicitly-sized array (length determined at link-time)

Fixes: 273f61a005 ("glsl: Add parser/compiler support for unsized array's length()")
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11952>
(cherry picked from commit c3f47f6e30)
2021-07-27 11:43:34 -07:00
Yevhenii Kolesnikov
0028e826c5 glsl: Add operator for .length() method on implicitly-sized arrays
ARB_shader_storage_buffer_object extension (promoted to core in 4.3) allows us
to call .length() method on arrays declared without an explicit size. The length is
determined at link time as a maximum array access.

Fixes: 273f61a005 ("glsl: Add parser/compiler support for unsized array's length()")
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11952>
(cherry picked from commit 441826aaaa)
2021-07-27 11:43:34 -07:00
Erico Nunes
fc9650d1f3 lima: avoid crash with negative viewport values
The viewport value computations done in lima_set_viewport_states
can result in a negative value for viewport.
These could end up converted to unsigned values in
lima_clip_scissor_to_viewport causing crashes from invalid
scissor commands.
Prevent this by limiting the minimum value to zero as is already
done for the left and bottom values.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2938
Cc: mesa-stable

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12055>
(cherry picked from commit e6cdb01c51)
2021-07-27 11:43:33 -07:00
Pierre-Eric Pelloux-Prayer
0eb551f658 dlist: don't handle unmerged draws as merged
The comment was incorrect: we can have N draws using the
same mode with N > 1 (eg: GL_QUAD_STRIP draws
cannot be merged).

This commit fixes the drawing code to use the correct draw
function.

This fixes a hang in Starsector (see issue #5086).

Fixes: b328d8e9bc ("dlist: use an union instead of allocating a 1-sized array")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11978>
(cherry picked from commit 11d6441b94)
2021-07-27 11:43:33 -07:00
Chia-I Wu
f27415c223 venus: suballocate memory in more cases
When a dedicated allocation is not required, ignore it and suballocate.

Fixes dEQP-VK.api.invariance.random.

Cc: 21.2 mesa-stable
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12072>
(cherry picked from commit 567bbfd56b)
2021-07-27 11:43:32 -07:00
Chia-I Wu
83ddb66d8a venus: clean up vn_AllocateMemory
Mainly to add vn_device_memory_should_suballocate.

Cc: 21.2 mesa-stable
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12072>
(cherry picked from commit f06b0df741)
2021-07-27 11:43:31 -07:00
Roland Scheidegger
fdc5858caf llvmpipe: fix nir dot products (fsum op)
When the dot product uses a source which can be optimized to a scalar,
after a bunch of nir optimization steps the source to fsum will be a scalar
with a x replicate swizzle. Hence nir_src_num_components is just 1 and the
fsum was just a no-op which is not correct. Arguably this could be optimized
a bit better, but just determine the number of addends by using nir_op_infos
instead (the operand fetch was fixed already by 39a938ecf4 doing the same).

Fixes: 4eb0475b5a ("gallivm/nir: add fsum support")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12066>
(cherry picked from commit cac5711d43)
2021-07-27 11:43:31 -07:00
Rob Clark
d23a2a0128 freedreno/a6xx: Add missing PC_CCU_INVALIDATE_x
The kernel normally inserts these between submits, but when we merge
submits in userspace we need to add them ourselves.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5114
Fixes: cccdc513e3 ("freedreno/drm/sp: Implement deferred submit merging")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12049>
(cherry picked from commit 53c39f710f)
2021-07-27 11:43:30 -07:00
Mike Blumenkrantz
fe2d7f3089 zink: use array size in spirv bo length calculations
I don't know why I was dropping this, but doing so breaks drivers that have
optimization passes based on the lengths of these variables

Fixes: c1cdf30a11 ("zink: apply Delete All The Code methodology to the ubo/ssbo variables")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12070>
(cherry picked from commit 1dc7b9b08b)
2021-07-27 11:43:29 -07:00
Dave Airlie
25b71cfa10 crocus/gen4: restrict memcpy mapping to gen5
This is due to gen4 + 4.5 having some rather strange swizzling
that we can't actually detect properly in userspace

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12058>
(cherry picked from commit 5bf6ec31cc)
2021-07-27 11:43:28 -07:00
Dylan Baker
acbcb4f093 .pick_status.json: Update to 49908c602f 2021-07-27 11:43:28 -07:00
Karol Herbst
bfefde2248 nv30: fix emulated vertex index buffers
We ended up applying the offset twice. Quite embarrassing.

This fixes a bunch of vertex shader related issues like the gnome desktop
is less broken and probably a lot of other applications.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5061
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12054>
(cherry picked from commit 1387d1d411)
2021-07-26 12:16:50 -07:00
Samuel Pitoiset
f9bae7e537 radv: allow unused VkSpecializationMapEntries
Fixes future CTS: dEQP-VK.pipeline.spec_constant.*.basic.*unused_*

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12062>
(cherry picked from commit 0497588eac)
2021-07-26 12:16:50 -07:00
Juan A. Suarez Romero
55761919e4 v3dv: assert job->cmd_buffer is valid
In v3dv_write_uniforms_wg_offsets() function, the job's cmd_buffer is a
valid command buffer, so there is no reason to check if its NULL or not.

This fixes CID#1487441 ("Dereference after null check") error.

v1:
 - `job->cmd_buffer` is the same as `cmd_buffer` (Alejandro)

v2:
 - Use `cmd_buffer` instead of `job->cmd_buffer` (Iago)

Fixes: 31a786c80a ("v3dv: handle QUNIFORM_FB_LAYERS")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11999>
(cherry picked from commit 4eb0475b5a)
2021-07-26 12:16:50 -07:00
Lionel Landwerlin
d054db55e6 isl: fix mapping of format->stringname
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ed6e586562 ("intel: properly constify isl_format_layouts")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5110
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12051>
(cherry picked from commit 8a99873712)
2021-07-26 12:16:50 -07:00
Dave Airlie
f2a07762df teximage: return correct desktop GL error for compressedteximage
For GL4.6 the spec says to return GL_INVALID_OPERATION for this.

Cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12032>
(cherry picked from commit 2138d1b9e6)
2021-07-26 12:16:50 -07:00
Alyssa Rosenzweig
cb9df156a6 agx: Plug memory leak in register allocator
Fixes: 85e18deb18 ("agx: Assign registers locally")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reported-by: Coverity
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>
(cherry picked from commit 465224379c)

Conflicts:
	src/asahi/compiler/agx_register_allocate.c
2021-07-26 12:16:50 -07:00
Alyssa Rosenzweig
053b80c70f agx: Fix mismatched units in load_ubo
Fixes assertion failure in
dEQP-GLES3.functional.ubo.single_basic_type.shared.highp_float_fragment

   Assertion failed: ((value & 1) == 0), function agx_print_sized, file
   ../src/asahi/compiler/agx_print.c, line 39.

Fixes: 033d4d09fc ("agx: Implement load_ubo/kernel_input")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>
(cherry picked from commit 5fb9159eb9)
2021-07-26 12:16:50 -07:00
Alyssa Rosenzweig
cee6a91d69 asahi: Fix sampler filtering flag
Typo in the XML. Fixes broken filtering. Still chasing an off-by-one.

Fixes: cad54e2721 ("asahi: Add command buffer XML definitions")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>
(cherry picked from commit 23f5ad668f)
2021-07-26 12:16:50 -07:00
Jason Ekstrand
5bd5f23579 nir/lower_tex: Rework invalid implicit LOD lowering
Only fragment and some compute shaders support implicit derivatives.
They're totally meaningless without helper invocations and some
understanding of the dispatch pattern.  We've got code to lower
nir_texop_tex in these shader stages to use an explicit derivative of 0
but it was pretty badly broken:

 1. It only handled nir_texop_tex, not nir_texop_txb or nir_texop_lod.

 2. It didn't take min_lod into account

 3. It was conflated with adding a missing LOD parameter to opcodes
    which expect one such as nir_texop_txf.  While not really a bug,
    this does make it way harder to reason about the code.

 4. Unless you set a flag (which most drivers don't), it left the
    opcode nir_texop_tex instead of nir_texop_txl which it should have
    been.

This reworks it to go through roughly the same path as other LOD
lowering only with a constant lod of 0 instead of calling out to
nir_texop_lod.  We also get rid of the lower_tex_without_implicit_lod
flag because most drivers set it and those that don't are probably
subtly broken.  If someone really wants to get nir_texop_tex in their
vertex shaders, they can write a new patch to add the flag back in.

Fixes: e382890e25 "nir: set default lod to texture opcodes that..."
Fixes: d5ac5d6e83 "nir: Add option to lower tex to txl when..."
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>
(cherry picked from commit 74ec2b12be)
2021-07-26 12:16:50 -07:00
Alyssa Rosenzweig
a7bf3f5262 pan/mdg: Garbage collect silly quirk
As discussed with Jason and Connor, this is probably subtly broken on
Mali T720.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>
(cherry picked from commit f9442e46ff)
2021-07-26 12:16:50 -07:00
Alyssa Rosenzweig
765ef56f34 targets/graw-xlib: Add missing dep_x11
Required to build Mesa on macOS with

   -Dbuild-tests=true -Dglx=gallium-xlib

Without this change, the build fails with

   In file included from ../src/gallium/targets/graw-xlib/graw_xlib.c:8:
   ../src/gallium/include/frontend/xlibsw_api.h:5:10: fatal error: 'X11/Xlib.h' file not found
   #include <X11/Xlib.h>

With `brew sh` X11 is found but linking fails due to `llvm-ar` missing
in the path. That issue appears to be unrelated to this missing
dependency. X11 is installed via XQuartz, so Homebrew should not be
required.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12022>
(cherry picked from commit 061508d310)
2021-07-26 12:01:59 -07:00
Timothy Arceri
277718fa8c glsl: relax rule on varying matching for shaders older than 4.20
This expands on commit c54c42321e. See the code comment for full
justifications. At the time of the previous commit Ian wanted to
limit the relaxing of the rule to GLSL 3.30 as that was the highest
version of shaders seen in the wild that were having trouble with
the stricter rules.

However since then I've found that the long standing issue with tess
shaders failing to compile in the game 'Layers Of Fear' is due to
this same issue. The game uses 4.10 shaders and also makes use of
explicit varying locations, so here we relax the rule to 4.20 and
make sure to apply the restriction to shaders using varyings with
explicit locations also.

Fixes: c54c42321e ("glsl: relax rule on varying matching for shaders older than 4.00")

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11873>
(cherry picked from commit 0e0633ca49)
2021-07-26 12:01:59 -07:00
Dave Airlie
84be95c634 draw/llvmpipe: multiply polygon offset units by 2
I was trying to fix this test, but noticed brw_clip.c in i965
does a * 2 here, and it seems to fix this test as well.

Fixes:
dEQP-GLES2.functional.polygon_offset.default_displacement_with_units

Fixes: f9e2c24326 ("draw,llvmpipe,util: add depth bias calculation for arb_depth_buffer_float")

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12029>
(cherry picked from commit 1e5a470b43)
2021-07-26 12:01:58 -07:00
Emma Anholt
a408f780c1 freedreno: Lock access to msm_pipe for RB object suballocation.
Hopefully this fixes the flakes that have happened since the suballoc
changes.

Fixes: 737d4caa83 ("freedreno: Suballocate our long-lived ring objects.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12002>
(cherry picked from commit b1dbbc3dc1)
2021-07-26 12:01:57 -07:00
Rhys Perry
b850f72628 aco: don't create v_madmk_f32/v_madak_f32 from v_fma_legacy_f16
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5105
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12004>
(cherry picked from commit 211d1dfd34)
2021-07-26 12:01:57 -07:00
Timothy Arceri
0342e7f91f util: add workaround for Full Bore
Unfortunately I contacted the dev about this issue years ago and he
made a fix, but it has never been released after all these years.

This stops the screen from being completely black in game.

CC: mesa-stable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11941>
(cherry picked from commit f3ec4a934d)
2021-07-26 12:01:56 -07:00
Dave Airlie
a7199a03ab llvmpipe: add support for time elapsed queries.
It turns out for QBO you really need to explicitly support time
elapsed queries to avoid wierd interactions with the non-qbo
query paths.

Fixes: 506e51b856 ("llvmpipe: initial query buffer object support. (v2)")
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11946>
(cherry picked from commit 2f5cd08ede)
2021-07-26 12:01:55 -07:00
Chia-I Wu
5a49aee6b3 meson: allow egl_native_platform to be specified
After commit f8dc22bf61, it was no longer possible to have explicitly
enabled platforms with surfaceless being the EGL native platform.  This
fixes that by adding -Degl-native-platform.

Fixes: f8dc22bf61 ("meson: drop deprecated EGL platform build options")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11992>
(cherry picked from commit 47946855f1)
2021-07-26 12:01:54 -07:00
Chia-I Wu
08781845fe egl/surfaceless: try kms_swrast before swrast
Before commit f7e0cdcf1a, we tried these in order

 - if (!ForceSoftware) surfaceless_probe_device(disp, false);
 - surfaceless_probe_device(disp, true);
 - surfaceless_probe_device_sw(disp);

The commit changed it to

 - surfaceless_probe_device(disp, ForceSoftware);
 - surfaceless_probe_device_sw(disp);

and broke 2D virtio-gpu and vgem when ForceSoftware is false.  This
commit restores the old behavior.

Fixes: f7e0cdcf1a ("egl/surfaceless: simplify dri2_initialize_surfaceless()")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11992>
(cherry picked from commit 384181921c)
2021-07-26 12:01:53 -07:00
Dylan Baker
98d88943e3 .pick_status.json: Update to b45cddda18 2021-07-26 12:01:51 -07:00
Dylan Baker
b47de6e919 VERSION: bump for 21.2-rc2 2021-07-21 18:18:14 -07:00
Ian Romanick
9d0be7b613 nir/gcm: Clear out pass_flags before starting
With this pass enabled in Intel drivers, running shader-db on
shaders/unity/38.shader_test resulted in

Program received signal SIGSEGV, Segmentation fault.
gcm_schedule_early_src (src=0x555555d45348, void_state=0x7fffffffba40) at ../../SOURCE/master/src/compiler/nir/nir_opt_gcm.c:297
297	   if (info->early_block->index < src_info->early_block->index)
(gdb) print src_info->early_block
$1 = (nir_block *) 0x0

I tracked this down to an early exit from gcm_schedule_early_instr on
the parent instruction because instr->pass_flags was 0x1c.  That
should be an impossible value for this pass, so I inferred that
pass_flags must have dirt left from some previous pass.

Fixes: 8dfe6f672f ("nir/GCM: Use pass_flags instead of bitsets for tracking visited/pinned")

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/597>
(cherry picked from commit 436668874a)
2021-07-21 11:53:50 -07:00
Daniel Schürmann
f2bdec9ecd aco: include <cstddef> in aco_util.h
It's needed for ptrdiff.

Fixes: 59fdaa1985 ('aco: reorder and cleanup #includes')
Closes: #5076
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11947>
(cherry picked from commit 1d8e9430d2)
2021-07-21 11:53:50 -07:00
Daniel Stone
83d94cfe71 egl/wayland: Allow EGLSurface to outlive wl_egl_window
According to the EGL spec, it is entirely valid for an EGLSurface to
outlive the native_window it was created from, provided that SwapBuffers
and MakeCurrent return EGL_BAD_NATIVE_WINDOW.

We don't have any facility to error on MakeCurrent, so just make sure we
can bundle on safely through rendering for now, then return
EGL_BAD_NATIVE_WINDOW from SwapBuffers.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2251
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4902
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11979>
(cherry picked from commit 6455ab6e5a)
2021-07-21 11:53:49 -07:00
Daniel Stone
8447b1d52b egl/wayland: Error on invalid native window
We unconditionally require a wl_egl_window to be passed as the native
window type, and do not permit a default window. The spec requires us to
return EGL_BAD_NATIVE_WINDOW when doing this, rather than crashing.

Further, if an EGLSurface has already been created for an existing
native window, we are required to return EGL_BAD_ALLOC.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2251
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4902
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11979>
(cherry picked from commit 0e2464d26b)
2021-07-21 11:53:49 -07:00
Corentin Noël
ba9e463c65 ci: actually run piglit tests with virgl
Make sure that the host is using llvmpipe while the guest is using virgl as driver.

Note that the neverball/neverball.trace trace actually regressed in a way that the
foreground is missing.

Fixes: f1b952fa ("ci: Run tests inside Crosvm")

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11986>
(cherry picked from commit 18fa820506)

Conflicts:
	src/gallium/drivers/virgl/ci/traces-virgl.yml
2021-07-21 11:53:48 -07:00
Dave Airlie
f62606c825 crocus/gen4-5: fix ff gs emit on VS vue map change.
This should fix some texturing problems seen on gen4/5, I reproduced it
with a minecraft.trace file

Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11993>
(cherry picked from commit 8c6196e7e8)
2021-07-21 11:52:03 -07:00
Michel Zou
25b8c5e4b0 zink: Fix unused-variable warning
Fixes: 9b40fc48
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11920>
(cherry picked from commit 4c36224f95)
2021-07-21 11:52:03 -07:00
Juan A. Suarez Romero
00b732a566 broadcom/compiler: emit TMU flush before a jump
Like in the case of emitting a block, process pending TMU operations
before a jump is executed.

Fixes dEQP-VK.graphicsfuzz.stable-binarysearch-tree-nested-if-and-conditional.

Fixes: 197090a3fc ("broadcom/compiler: implement pipelining for general
TMU operations")

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11971>
(cherry picked from commit dc40157888)
2021-07-21 11:52:02 -07:00
Marek Olšák
cea26a9813 st/mesa: always use PIPE_USAGE_STAGING for GL_MAP_READ_BIT usage
This fixes CPU read performance.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5091
Cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11974>
(cherry picked from commit 54e1ec017d)
2021-07-21 11:52:02 -07:00
Olivier Fourdan
3b1f5b2d5a radeonsi: Check aux_context on si_destroy_screen()
The function radeonsi_screen_create_impl() tries to create the
aux_context but doesn't actually check for the returned value from
si_create_context().

Then, on si_destroy_screen() the aux_context is used without actually
checking whether it's a thing or not.

As a result, if for any reason si_create_context() failed, we shall
crash in si_destroy_screen() with a NULL pointer dereference trying to
access ((struct si_context *)sscreen->aux_context)->log.

Simply check for aux_context not being NULL to avoid that crash.

Cc: mesa-stable
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11948>
(cherry picked from commit 5bfd1a7e19)
2021-07-21 11:52:01 -07:00
Pierre-Eric Pelloux-Prayer
400c224efe mesa: fix bindless uniform samplers update
According to the comment below some extra magic is needed
for bindless samplers, so don't do an early return in this
case.

Fixes: 736f1f70ab ("mesa: skip redundant uniform updates for glUniform")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4806
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11930>
(cherry picked from commit 8be61e8a9e)
2021-07-21 11:52:01 -07:00
Daniel Schürmann
d341882e13 aco/optimizer: ensure to not erase high bits when propagating packed constants
Packed constants with non-zero values in the high half
might have been propagated as 16 bit, dropping the high half.

Cc: mesa-stable
Closes: #5070
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11954>
(cherry picked from commit 9b1a296172)
2021-07-21 11:52:00 -07:00
Jose Maria Casanova Crespo
588ee0fd3f v3d/driconf: Expose non-MSAA texture limits for mutter and gnome-shell
To enable dual 4k displays on mutter or gnome-shell under X11 we need to
expose the non-MSAA texture limit as we did for Xorg at 60a64f028d
("v3d: Use driconf to expose non-MSAA texture limits for Xorg.")

https://gitlab.gnome.org/GNOME/mutter/-/issues/1874

Cc: 21.1 21.2 mesa-stable
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11926>
(cherry picked from commit fd5fa73e6c)
2021-07-21 11:52:00 -07:00
Karol Herbst
8e00c1956d nv50/ir/nir: fix smem size for GL
Originally I fixed the case where the nir itself has a shared mem size of
0, but the frontend (e.g. clover) set it to some other value.

But st/mesa sets the shared mem size on the state object as well and we
end up actually doubling the value in the driver as we set smemSize to the
value from the state object before calling into the compiler.

So just max the value instead.

Fixes the compute_shader.shared-max CTS test.

Fixes: dc667b1f19 ("nv50/ir/nir: fix smem size")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11047>
(cherry picked from commit ff55412f40)
2021-07-21 11:51:59 -07:00
Dave Airlie
4be9824dc9 softpipe/aniso: move DDQ calculation to after scaling.
I've read the papers on EWA filters and it seems like the calculate
DDQ = 2 * A after the scaling of A happens. This seems to make
things less blurry and more like real aniso.

Fixes: 2135aba8 ("softpipe: Constify variables")
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11917>
(cherry picked from commit 57dcfb4e55)
2021-07-21 11:51:59 -07:00
Timothy Arceri
3cb96be239 glsl: replace some C++ code with C
This replaces some new/delete uses with malloc/free.

This is more consistent with most of the other glsl IR code but
more importantly it allows the game "Battle Block Theater" to
start working on some mesa drivers. The game overrides new and
ends up throwing an assert and crashing when it sees this
function calling new [0].

Note: The game still crashes with radeonsi due to similar conflicts
with LLVM.

CC: mesa-stable

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11907>
(cherry picked from commit 749251391d)
2021-07-21 11:51:58 -07:00
Marek Olšák
04e8aeac6d mesa: fix incorrect comment in draw_gallium_multimode
Fixes: 4566383ae4 ("gallium: move pipe_draw_info::index_bias to pipe_draw_start_count_bias")

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11939>
(cherry picked from commit ed57666a5c)
2021-07-21 11:51:58 -07:00
Mike Blumenkrantz
742c35d17c util/foz: stop crashing on destroy if prepare hasn't been called
Fixes: eca6bb9540 ("util/fossilize_db: add basic fossilize db util to read/write shader caches")

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11931>
(cherry picked from commit 2850db0a9e)
2021-07-21 11:51:57 -07:00
Iván Briano
3c5987e2b4 anv: fix feature/property/sizes reported for fragment shading rate
Fixes: 790ff1ceac ("anv: fixup physical device properties of fragment shading rate")

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11897>
(cherry picked from commit d27f7fa1b3)
2021-07-21 11:51:57 -07:00
Marek Olšák
2193a19631 radeonsi: don't expose no-attachment MSAA 16x on all 1 RB chips due to issues
Cc: mesa-stable@lists.freedesktop.org

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11900>
(cherry picked from commit 86ff5b7ddb)
2021-07-21 11:51:56 -07:00
Dylan Baker
8653cbd0aa .pick_status.json: Update to 27534a49cf 2021-07-21 11:49:09 -07:00
Danylo Piliaiev
bfd3fcd3af freedreno: fix wrong tile aligment for 3 CCU gpu
Fixes: 78c8a8af80 "freedreno: Generate device-info tables at build time"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5060

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11928>
(cherry picked from commit 53d4485a02)
2021-07-21 11:49:09 -07:00
Jason Ekstrand
5be2d785ae iris: Use intel_i915_query for meminfo
Error handling with DRM_IOCTL_I915_QUERY is tricky and we got it wrong
in one of the two calls here.  Use the common helper instead.  This also
fixes a theoretical bug where calloc() fails.  While we're here, inline
iris_bufmgr_update_meminfo because we're not really benefiting from
having it separate anymore.

Fixes: e60114b2ae "iris/bufmgr: Query memory region info."
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>
(cherry picked from commit 3fa6b8d041)
2021-07-21 11:49:09 -07:00
Jason Ekstrand
9af1aa306f anv: Use intel_i915_query_alloc for memory regions
Error handling with DRM_IOCTL_I915_QUERY is tricky and we got it wrong
in one of the two calls here.  Use the common helper instead.  This also
fixes a theoretical bug where calloc() fails.  While we're here, inline
anv_track_meminfo because we're not really benefiting from having it
separate anymore.

Fixes: 65e8d72bc1 "anv: Query memory region info"
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>
(cherry picked from commit 35ec1d9730)
2021-07-21 11:49:09 -07:00
Jason Ekstrand
22941ec612 intel: Pull anv_i915_query into common code
We also add a helper which contains the standard query+alloc+query
pattern used by anv_gem_get_engine_info().  The caller is required to
free the pointer.

These are declared static inline not because we care about the
performance of these helpers but because we're going to use them in the
intel_device_info code and we don't want a link dependency.

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>
(cherry picked from commit ffdf4d7683)
2021-07-21 11:49:09 -07:00
Jason Ekstrand
bbeb420157 anv: Handle errors properly in anv_i915_query
DRM_IOCTL_I915_QUERY is a multi-query.  The most egregious errors are
returned via the usual ioctl error mechanism but there are also
per-query errors that are indicated by item.length < 0.  We need to
handle those as well.  While we're at it, scrape errno so we can return
a proper integer error.

Fixes: c0d07c838a "anv: Support i915 query (DRM_IOCTL_I915_QUERY)..."
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11770>
(cherry picked from commit b664481ba9)
2021-07-16 12:47:00 -07:00
Timur Kristóf
a63d23c4c2 radv: Remove num_viewports from radv_skip_ngg_culling.
NGG culling is not compiled into shaders that can use multiple
viewports, so it's not necessary to check it here.

Fixes: 9a95f5487f
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11910>
(cherry picked from commit d07e5bde75)
2021-07-16 12:46:59 -07:00
Timur Kristóf
c511014205 radv: Don't compile NGG culling into shaders that write viewport index.
We don't support NGG culling with multiple viewports yet.

Fixes: f30e4351de
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11910>
(cherry picked from commit aa24740370)
2021-07-16 12:46:59 -07:00
Jason Ekstrand
c84ea77f76 iris: Re-emit MEDIA_VFE_STATE for variable group size shaders
It implicitly contains the number of threads via the CURBE allocation
size field.

Fixes: 33c61eb2f1 "iris: Implement ARB_compute_variable_group_size"
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10640>
(cherry picked from commit e56d5db341)
2021-07-16 12:46:58 -07:00
Samuel Pitoiset
91f9753405 radv: fix specifying the stencil layout for separate depth/stencil layouts
The Vulkan spec has been updated few months ago again and pNext is
always honored if present.

Found this with vkd3d-proton which implemented separate depth/stencil
layouts recently.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11903>
(cherry picked from commit 0b637919a8)
2021-07-16 12:46:58 -07:00
Samuel Pitoiset
8a33436b88 radv: report APUs as discrete GPUs for Red Dead Redemption 2
On APUs, we fake heaps to simulate a dGPU setup because it seems to
have the maximum compatibility. Though, some applications like RDR2
still only looks at GTT if the driver reports an iGPU which means it
will only use 1/3rd of total memory available.

This is currently behind a drirc option because it might have
implications for other apps but we might want to extend this later
if everything is fine.

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11891>
(cherry picked from commit cadf2d63b7)
2021-07-16 12:46:57 -07:00
Samuel Pitoiset
75ea264543 radv: fix bounds checking for zero vertex stride on GFX6-7
GFX6 and GFX10+ have similar logic.

This fixes test_zero_vertex_stride from vkd3d-proton on
Pitcairn (GFX6) and on Bonaire (GFX7).

Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11904>
(cherry picked from commit 7a1cc56e40)
2021-07-16 12:46:57 -07:00
Daniel Stone
a2c2e1ff6c vulkan/wsi/wayland: Initialise wl_shm pointer in VkImage
We don't explicitly calloc the wsi_wl_image to zero; anything that's
expected to be valid needs to be explicitly initialised.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5063
Fixes: 6b36f35734 ("vulkan/wsi/wl: add wl_shm support for lavapipe.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Tested-by: Jan Beich <jbeich@freebsd.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11909>
(cherry picked from commit 49a7c92793)
2021-07-16 12:46:56 -07:00
Dave Airlie
94ea5e0d8e draw: handle resetting draw_id between instances.
If we have a multi draw then the draw_id needs to get reset
between each instance.

Fixes the rest of the VK CTS multidraw tests

Fixes: ce0b1f23c3 ("aux/draw: track increment_draw_id value from draw info")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11899>
(cherry picked from commit b3d2642ca4)
2021-07-16 12:46:56 -07:00
Dylan Baker
6b6553c49c .pick_status.json: Update to a62973580b 2021-07-16 12:46:54 -07:00
Vinson Lee
1b7de4bffa asahi: Move assignment after null check.
Fix defect reported by Coverity Scan.

Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking so suggests that it may be null,
but it has already been dereferenced on all paths leading to the
check.

Fixes: dcd2d8ca50 ("asahi: Track more Gallium state")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11898>
(cherry picked from commit f5c8761eda)
2021-07-15 10:04:22 -07:00
Iago Toral Quiroga
3eb7232a9b v3dv: remove more dead clearing code
We forgot to remove the v3dvx code for the clearing code fallbacks
we removed after we implemented layered clears.

Fixes: 5ba7f64b45 ('v3dv: remove fallback path for vkCmdClearAttachments')

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11902>
(cherry picked from commit 18642987fd)
2021-07-15 10:04:22 -07:00
Samuel Pitoiset
7bc923e54b radv: only init the TC-compat ZRANGE metadata for the depth aspect
With separate depth/stencil layouts, if the depth aspect is first
initialized and then cleared, the ZRANGE_PRECISION metadata might
be different than 0. Initializing it again for the stencil aspect
will overwrite the value.

Fixes rendering glitches with Scarlet Nexus on GFX8-9.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5052
Cc: 21.1 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11883>
(cherry picked from commit 1ea156f44c)
2021-07-15 10:04:21 -07:00
Vasily Khoruzhick
eec1f4092c lima: handle fp16 vertex formats
12128fb135 marked fp16 vertex formats supported, but they aren't actually handled
by lima_pipe_format_to_attrib_type(). Fix it by handling it there.
FP16 seems to be the only missing index which is 0x3.

Fixes: 12128fb135 ("lima: add natively supported vertex buffer formats")

Cc: 21.1 mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11872>
(cherry picked from commit 4a3269dff6)
2021-07-15 10:04:20 -07:00
Joshua Ashton
18ed841f2a lavapipe: Use common Vulkan format helpers
Drops the vk_format_to_pipe (and it's outdated table) for vk_format_to_pipe_format, aswell as the duplicated vk_format_aspects function.

The old format table was missing USCALED and other values, causing incorrect rendering in many games.

Fixes rendering in Portal 1, Hat in Time, Half-Life 2 and pretty much every other D3D9 title with DXVK.

Fixes: b38879f8c5 ("vallium: initial import of the vulkan frontend")

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11863>
(cherry picked from commit 1744372714)
2021-07-15 10:04:19 -07:00
Mike Blumenkrantz
7fbea74c23 lavapipe: increment drawid for multidraws
Fixes: f99f7c06 ("lavapipe: implement multidraw ext")

Reviewed-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11878>
(cherry picked from commit 6689c3917e)
2021-07-15 10:04:19 -07:00
Mike Blumenkrantz
bf260384b9 zink: improve detection for broken drawids
this is also broken for multidraws where drawid shouldn't be incremented

Fixes: 2d32d123e5 ("zink: avoid unnecessarily rewriting gl_DrawID")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11878>
(cherry picked from commit d08c84ab0c)
2021-07-15 10:04:18 -07:00
Dave Airlie
7d2802b80c lvp: fixup multi draw memcpys
This doesn't fix the tests but it fixes a bunch of valgrind
uninitialised value warnings

Fixes: f99f7c06e7 ("lavapipe: implement multidraw ext")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-By: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11870>
(cherry picked from commit a3271b3f73)
2021-07-15 10:04:17 -07:00
Dylan Baker
0ca42c89e7 .pick_status.json: Update to f40a08d25c 2021-07-15 10:04:14 -07:00
Dylan Baker
b6c34d6cec VERSION: bump for 21.2-rc1 2021-07-14 10:28:53 -07:00
2268 changed files with 85578 additions and 286959 deletions

View File

@@ -12,9 +12,6 @@ variables:
JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
# reference images stored for traces
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${MINIO_HOST}/mesa-tracie-results/$FDO_UPSTREAM_REPO"
# Individual CI farm status, set to "offline" to disable jobs
# running on a particular CI farm (ie. for outages, etc):
FD_FARM: "online"
include:
- project: 'freedesktop/ci-templates'
@@ -30,22 +27,22 @@ include:
- local: '.gitlab-ci/test-source-dep.yml'
- local: 'src/amd/ci/gitlab-ci.yml'
- local: 'src/broadcom/ci/gitlab-ci.yml'
- local: 'src/etnaviv/ci/gitlab-ci.yml'
- local: 'src/freedreno/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/i915/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/iris/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/lima/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/panfrost/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/radeonsi/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/softpipe/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/virgl/ci/gitlab-ci.yml'
- local: 'src/gallium/drivers/zink/ci/gitlab-ci.yml'
- local: 'src/gallium/frontends/lavapipe/ci/gitlab-ci.yml'
- local: 'src/panfrost/ci/gitlab-ci.yml'
stages:
- sanity
- container
- container-2
- git-archive
- build-x86_64
- build-misc
@@ -54,7 +51,6 @@ stages:
- arm
- broadcom
- freedreno
- etnaviv
- software-renderer
- layered-backends
- deploy
@@ -102,7 +98,7 @@ stages:
- .ci-run-policy
script:
- apk --no-cache add graphviz doxygen
- pip3 install sphinx breathe mako sphinx_rtd_theme
- pip3 install "sphinx<4.0" breathe mako sphinx_rtd_theme
- docs/doxygen-wrapper.py --out-dir=docs/doxygen_xml
- sphinx-build -W -b html docs public
@@ -206,10 +202,8 @@ test-docs-mr:
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
.set-image:
extends:
- .incorporate-templates-commit
variables:
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
image: "$MESA_IMAGE"
.set-image-base-tag:
@@ -217,7 +211,7 @@ test-docs-mr:
- .set-image
- .incorporate-base-tag+templates-commit
variables:
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
# Build the CI docker images.
@@ -283,6 +277,7 @@ test-docs-mr:
- .incorporate-base-tag+templates-commit
# Don't want the .container rules
- .ci-run-policy
stage: container-2
# Debian 11 based x86 build image base
debian/x86_build-base:
@@ -290,7 +285,7 @@ debian/x86_build-base:
- .fdo.container-build@debian
- .container
variables:
MESA_IMAGE_TAG: &debian-x86_build-base "2021-07-26-python"
MESA_IMAGE_TAG: &debian-x86_build-base "2021-07-02-bump-libdrm"
.use-debian/x86_build-base:
extends:
@@ -376,7 +371,7 @@ debian/android_build:
extends:
- .use-debian/x86_build-base
variables:
MESA_IMAGE_TAG: &debian-android_build "2021-10-26-static-libstdcxx"
MESA_IMAGE_TAG: &debian-android_build "2021-07-02-bump-libdrm"
.use-debian/android_build:
extends:
@@ -392,7 +387,7 @@ debian/android_build:
debian/x86_test-base:
extends: debian/x86_build-base
variables:
MESA_IMAGE_TAG: &debian-x86_test-base "2021-10-15-va"
MESA_IMAGE_TAG: &debian-x86_test-base "2021-07-02-bump-libdrm"
.use-debian/x86_test-base:
extends:
@@ -409,14 +404,14 @@ debian/x86_test-gl:
extends: .use-debian/x86_test-base
variables:
FDO_DISTRIBUTION_EXEC: 'env KERNEL_URL=${KERNEL_URL} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.15-for-mesa-ci-540a4af22d71/linux-v5.15-for-mesa-ci-540a4af22d71.tar.bz2"
MESA_IMAGE_TAG: &debian-x86_test-gl "2021-11-02-lazor"
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.13-rc5-for-mesa-ci-27df41f1e0cf/linux-v5.13-rc5-for-mesa-ci-27df41f1e0cf.tar.bz2"
MESA_IMAGE_TAG: &debian-x86_test-gl "2021-07-12-dmabuf"
# Debian 11 based x86 test image for VK
debian/x86_test-vk:
extends: .use-debian/x86_test-base
variables:
MESA_IMAGE_TAG: &debian-x86_test-vk "2021-2021-10-15-va"
MESA_IMAGE_TAG: &debian-x86_test-vk "2021-07-02-bump-libdrm"
# Debian 11 based ARM build image
debian/arm_build:
@@ -426,7 +421,7 @@ debian/arm_build:
tags:
- aarch64
variables:
MESA_IMAGE_TAG: &debian-arm_build "2021-07-26-python"
MESA_IMAGE_TAG: &debian-arm_build "2021-07-02-bump-libdrm"
.use-debian/arm_build:
extends:
@@ -461,11 +456,11 @@ fedora/x86_build:
.kernel+rootfs:
extends:
- .ci-run-policy
stage: container
stage: container-2
variables:
GIT_STRATEGY: fetch
KERNEL_URL: *kernel-rootfs-url
MESA_ROOTFS_TAG: &kernel-rootfs "2021-11-02-lazor"
MESA_ROOTFS_TAG: &kernel-rootfs "2021-07-12-dmabuf"
DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
script:
- .gitlab-ci/container/lava_build.sh
@@ -512,6 +507,7 @@ debian/arm_test:
- .container
# Don't want the .container rules
- .ci-run-policy
stage: build-misc
needs:
- kernel+rootfs_arm64
- kernel+rootfs_armhf
@@ -519,7 +515,7 @@ debian/arm_test:
FDO_DISTRIBUTION_EXEC: 'env ARTIFACTS_PREFIX=https://${MINIO_HOST}/mesa-lava ARTIFACTS_SUFFIX=${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT} CI_PROJECT_PATH=${CI_PROJECT_PATH} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}"
MESA_ARM_BUILD_TAG: *debian-arm_build
MESA_IMAGE_TAG: &debian-arm_test "2021-09-17-deqp"
MESA_IMAGE_TAG: &debian-arm_test "2021-07-02-bump-libdrm"
MESA_ROOTFS_TAG: *kernel-rootfs
.use-debian/arm_test:
@@ -684,7 +680,6 @@ debian-testing:
-D platforms=x11
GALLIUM_ST: >
-D dri3=enabled
-D gallium-va=enabled
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,iris,i915"
VULKAN_DRIVERS: "swrast,amd"
BUILDTYPE: "debugoptimized"
@@ -755,6 +750,7 @@ debian-gallium:
script:
- .gitlab-ci/meson/build.sh
- .gitlab-ci/run-shader-db.sh
- src/freedreno/.gitlab-ci/run-fdtools.sh
# Test a release build with -Werror so new warnings don't sneak in.
debian-release:
@@ -778,7 +774,6 @@ debian-release:
-D gallium-opencl=disabled
-D llvm=false
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
VULKAN_DRIVERS: "amd"
BUILDTYPE: "release"
EXTRA_OPTION: >
-D osmesa=true
@@ -881,7 +876,7 @@ debian-android:
# Can't do Intel because gen_decoder.c currently requires libexpat, which
# is not a dependency that AOSP wants to accept. Can't do Radeon because
# it requires LLVM, which we don't have an Android build of.
- PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=intel .gitlab-ci/meson/build.sh
# - PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=intel .gitlab-ci/meson/build.sh
.meson-cross:
extends:
@@ -936,7 +931,7 @@ debian-arm64:
- .meson-arm
- .ci-deqp-artifacts
variables:
VULKAN_DRIVERS: "freedreno,broadcom,panfrost"
VULKAN_DRIVERS: "freedreno,broadcom"
EXTRA_OPTION: >
-D llvm=disabled
-D valgrind=false
@@ -1250,7 +1245,7 @@ debian-mingw32-x86_64:
variables:
PIGLIT_PROFILES: replay
PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_host=minio-packet.freedesktop.org --minio_bucket=mesa-tracie-public --role-session-name=${CI_PROJECT_PATH}:${CI_JOB_ID} --jwt=${CI_JOB_JWT}
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/
PIGLIT_JUNIT_RESULTS: 1
.deqp-test:
@@ -1292,7 +1287,6 @@ debian-mingw32-x86_64:
- when: never
variables:
GIT_STRATEGY: none
JOB_TIMEOUT: 80
# The above .test-manual rules doesn't allow the jobs to be available for MRs
# but we should have an option to have manual jobs in MRs as well.
@@ -1306,7 +1300,6 @@ debian-mingw32-x86_64:
- when: never
variables:
GIT_STRATEGY: none
JOB_TIMEOUT: 80
.baremetal-test:
extends:
@@ -1340,7 +1333,7 @@ debian-mingw32-x86_64:
.baremetal-arm64-asan-test:
variables:
DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.6"
TEST_LD_PRELOAD: libasan.so.6
MINIO_ARTIFACT_NAME: mesa-arm64-asan
needs:
- debian/arm_test
@@ -1350,4 +1343,4 @@ debian-mingw32-x86_64:
.baremetal-deqp-test:
variables:
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
FDO_CI_CONCURRENT: 0 # Default to number of CPUs
DEQP_PARALLEL: 0 # Default to number of CPUs

View File

@@ -10,7 +10,7 @@ EXIT=0
# Run reset tests without parallelism:
if ! env \
DEQP_RESULTS_DIR=results/reset \
FDO_CI_CONCURRENT=1 \
DEQP_PARALLEL=1 \
DEQP_CASELIST_FILTER='.*reset.*' \
/install/deqp-runner.sh; then
EXIT=1

View File

@@ -0,0 +1,81 @@
#!/bin/sh
# This test script groups together a bunch of fast dEQP variant runs
# to amortize the cost of rebooting the board.
set -ex
EXIT=0
# Test rendering with the gmem path forced when possible (~1 minute)
if ! env \
DEQP_RESULTS_DIR=results/gmem \
DEQP_VER=gles31 \
DEQP_FRACTION=5 \
FD_MESA_DEBUG=nobypass \
/install/deqp-runner.sh; then
EXIT=1
fi
# Test rendering with the bypass path forced when possible (~1 minute)
if ! env \
DEQP_RESULTS_DIR=results/bypass \
DEQP_VER=gles31 \
DEQP_FRACTION=5 \
FD_MESA_DEBUG=nogmem \
GPU_VERSION=freedreno-a630-bypass \
/install/deqp-runner.sh; then
EXIT=1
fi
# Test rendering with the UBO-to-constants optimization disabled (~1 minute)
if ! env \
DEQP_RESULTS_DIR=results/nouboopt \
DEQP_VER=gles31 \
IR3_SHADER_DEBUG=nouboopt \
DEQP_CASELIST_FILTER="functional.*ubo" \
/install/deqp-runner.sh; then
EXIT=1
fi
# gles3-565nozs mustpass (~20s)
if ! env \
DEQP_RESULTS_DIR=results/gles3-565nozs \
DEQP_VER=gles3 \
DEQP_CONFIG="rgb565d0s0ms0" \
DEQP_VARIANT="565-no-depth-no-stencil" \
/install/deqp-runner.sh; then
EXIT=1
fi
# gles31-565nozs mustpass (~1s)
if ! env \
DEQP_RESULTS_DIR=results/gles31-565nozs \
DEQP_VER=gles31 \
DEQP_CONFIG="rgb565d0s0ms0" \
DEQP_VARIANT="565-no-depth-no-stencil" \
/install/deqp-runner.sh; then
EXIT=1
fi
# gles3-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859
# if ! env \
# DEQP_RESULTS_DIR=results/gles3-multisample \
# DEQP_VER=gles3 \
# DEQP_CONFIG="rgba8888d24s8ms4" \
# DEQP_VARIANT="multisample" \
# /install/deqp-runner.sh; then
# EXIT=1
# fi
# gles31-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859
# if ! env \
# DEQP_RESULTS_DIR=results/gles31-multisample \
# DEQP_VER=gles31 \
# DEQP_CONFIG="rgba8888d24s8ms4" \
# DEQP_VARIANT="multisample" \
# /install/deqp-runner.sh; then
# EXIT=1
# fi
exit $EXIT

View File

@@ -126,12 +126,6 @@ class CrosServoRun:
self.print_error("Detected cheza power management bus error, restarting run...")
return 2
# If the network device dies, it's probably not graphics's fault, just try again.
if re.search("NETDEV WATCHDOG", line):
self.print_error(
"Detected network device failure, restarting run...")
return 2
# These HFI response errors started appearing with the introduction
# of piglit runs. CosmicPenguin says:
#
@@ -145,11 +139,6 @@ class CrosServoRun:
self.print_error("Detected cheza power management bus error, restarting run...")
return 2
if re.search("coreboot.*bootblock starting", line):
self.print_error(
"Detected spontaneous reboot, restarting run...")
return 2
result = re.search("hwci: mesa: (\S*)", line)
if result:
if result.group(1) == "pass":

View File

@@ -1,10 +0,0 @@
#!/bin/bash
relay=$1
if [ -z "$relay" ]; then
echo "Must supply a relay arg"
exit 1
fi
$CI_PROJECT_DIR/install/bare-metal/eth008-power-relay.py $ETH_HOST $ETH_PORT off $relay

View File

@@ -1,28 +0,0 @@
#!/usr/bin/python3
import sys
import socket
host = sys.argv[1]
port = sys.argv[2]
mode = sys.argv[3]
relay = sys.argv[4]
msg = None
if mode == "on":
msg = b'\x20'
else:
msg = b'\x21'
msg += int(relay).to_bytes(1, 'big')
msg += b'\x00'
c = socket.create_connection((host, int(port)))
c.sendall(msg)
data = c.recv(1)
c.close()
if data[0] == b'\x01':
print('Command failed')
sys.exit(1)

View File

@@ -1,12 +0,0 @@
#!/bin/bash
relay=$1
if [ -z "$relay" ]; then
echo "Must supply a relay arg"
exit 1
fi
$CI_PROJECT_DIR/install/bare-metal/eth008-power-relay.py $ETH_HOST $ETH_PORT off $relay
sleep 5
$CI_PROJECT_DIR/install/bare-metal/eth008-power-relay.py $ETH_HOST $ETH_PORT on $relay

View File

@@ -83,12 +83,6 @@ class FastbootRun:
"Detected kernel soft lockup, restarting run...")
return 2
# If the network device dies, it's probably not graphics's fault, just try again.
if re.search("NETDEV WATCHDOG", line):
self.print_error(
"Detected network device failure, restarting run...")
return 2
result = re.search("hwci: mesa: (\S*)", line)
if result:
if result.group(1) == "pass":

View File

@@ -1,41 +0,0 @@
#!/usr/bin/python3
# Copyright © 2020 Christian Gmeiner
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#
# Tiny script to read bytes from telnet, and write the output to stdout, with a
# buffer in between so we don't lose serial output from its buffer.
#
import sys
import telnetlib
host=sys.argv[1]
port=sys.argv[2]
tn = telnetlib.Telnet(host, port, 1000000)
while True:
bytes = tn.read_some()
sys.stdout.buffer.write(bytes)
sys.stdout.flush()
tn.close()

View File

@@ -26,27 +26,21 @@ for var in \
DEQP_EXPECTED_RENDERER \
DEQP_FRACTION \
DEQP_HEIGHT \
DEQP_NO_SAVE_RESULTS \
DEQP_PARALLEL \
DEQP_RESULTS_DIR \
DEQP_RUNNER_OPTIONS \
DEQP_SUITE \
DEQP_VARIANT \
DEQP_VER \
DEQP_WIDTH \
DEVICE_NAME \
DRIVER_NAME \
EGL_PLATFORM \
ETNA_MESA_DEBUG \
FDO_CI_CONCURRENT \
FDO_UPSTREAM_REPO \
FD_MESA_DEBUG \
FLAKES_CHANNEL \
GPU_VERSION \
GTEST \
GTEST_FAILS \
GTEST_FRACTION \
GTEST_RESULTS_DIR \
GTEST_RUNNER_OPTIONS \
GTEST_SKIPS \
HWCI_FREQ_MAX \
HWCI_KERNEL_MODULES \
HWCI_START_XORG \
@@ -62,7 +56,6 @@ for var in \
MESA_VK_IGNORE_CONFORMANCE_WARNING \
MINIO_HOST \
NIR_VALIDATE \
PAN_I_WANT_A_BROKEN_VULKAN_DRIVER \
PAN_MESA_DEBUG \
PIGLIT_FRACTION \
PIGLIT_JUNIT_RESULTS \
@@ -80,6 +73,7 @@ for var in \
PIGLIT_RESULTS \
PIGLIT_TESTS \
PIPELINE_ARTIFACTS_BASE \
TEST_LD_PRELOAD \
TU_DEBUG \
VK_CPU \
VK_DRIVER \

View File

@@ -23,9 +23,6 @@ export XDG_CACHE_HOME=/tmp
export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))")
if [ "$HWCI_FREQ_MAX" = "true" ]; then
# Ensure initialization of the DRM device (needed by MSM)
head -0 /dev/dri/renderD128
# Disable GPU frequency scaling
DEVFREQ_GOVERNOR=`find /sys/devices -name governor | grep gpu || true`
test -z "$DEVFREQ_GOVERNOR" || echo performance > $DEVFREQ_GOVERNOR || true

View File

@@ -11,7 +11,6 @@ CONFIG_DEVFREQ_GOV_PASSIVE=y
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
CONFIG_DRM=y
CONFIG_DRM_ETNAVIV=y
CONFIG_DRM_ROCKCHIP=y
CONFIG_DRM_PANFROST=y
CONFIG_DRM_LIMA=y

View File

@@ -16,6 +16,7 @@ CONFIG_DRM_LIMA=y
CONFIG_DRM_PANEL_SIMPLE=y
CONFIG_DRM_MSM=y
CONFIG_DRM_I2C_ADV7511=y
CONFIG_DRM_I2C_ADV7533=y
CONFIG_PWM_CROS_EC=y
CONFIG_BACKLIGHT_PWM=y
@@ -31,10 +32,6 @@ CONFIG_TYPEC=y
CONFIG_TYPEC_TCPM=y
# MSM platform bits
# For CONFIG_QCOM_LMH
CONFIG_OF=y
CONFIG_QCOM_RPMHPD=y
CONFIG_QCOM_RPMPD=y
CONFIG_SDM_GPUCC_845=y
@@ -48,11 +45,9 @@ CONFIG_I2C_QCOM_GENI=y
CONFIG_SPI_QCOM_GENI=y
CONFIG_PHY_QCOM_QUSB2=y
CONFIG_PHY_QCOM_QMP=y
CONFIG_QCOM_CLK_APCC_MSM8996=y
CONFIG_QCOM_LLCC=y
CONFIG_QCOM_LMH=y
CONFIG_QCOM_SPMI_TEMP_ALARM=y
CONFIG_QCOM_WDT=y
CONFIG_QCOM_CLK_APCC_MSM8996=y
CONFIG_POWER_RESET_QCOM_PON=y
CONFIG_RTC_DRV_PM8XXX=y
CONFIG_INTERCONNECT=y
@@ -61,9 +56,8 @@ CONFIG_INTERCONNECT_QCOM_SDM845=y
CONFIG_INTERCONNECT_QCOM_MSM8916=y
CONFIG_INTERCONNECT_QCOM_OSM_L3=y
CONFIG_INTERCONNECT_QCOM_SC7180=y
CONFIG_QCOM_WDT=y
CONFIG_CRYPTO_DEV_QCOM_RNG=y
CONFIG_SC_DISPCC_7180=y
CONFIG_SC_GPUCC_7180=y
# db410c ethernet
CONFIG_USB_RTL8152=y
@@ -142,15 +136,12 @@ CONFIG_USB_NET_SMSC95XX=y
# For amlogic
CONFIG_MESON_GXL_PHY=y
CONFIG_MDIO_BUS_MUX_MESON_G12A=y
CONFIG_DRM_MESON=y
# For Mediatek
CONFIG_DRM_MEDIATEK=y
CONFIG_PWM_MEDIATEK=y
CONFIG_DRM_MEDIATEK_HDMI=y
CONFIG_GNSS=y
CONFIG_GNSS_MTK_SERIAL=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_MTK=y
CONFIG_MTK_DEVAPC=y
CONFIG_PWM_MTK_DISP=y

View File

@@ -31,18 +31,5 @@ if [[ $arch == "arm64" ]]; then
wget ${ARTIFACTS_URL}/$DTB
done
popd
elif [[ $arch == "armhf" ]]; then
mkdir -p /baremetal-files
pushd /baremetal-files
wget ${ARTIFACTS_URL}/zImage
DEVICE_TREES="imx6q-cubox-i.dtb"
for DTB in $DEVICE_TREES; do
wget ${ARTIFACTS_URL}/$DTB
done
popd
fi

View File

@@ -10,14 +10,14 @@ AOSP_EXTERNAL_ROOT=$CROS_ROOT/aosp/external
mkdir -p $AOSP_EXTERNAL_ROOT
PLATFORM2_ROOT=/platform2
PLATFORM2_COMMIT=72e56e66ccf3d2ea48f5686bd1f772379c43628b
PLATFORM2_COMMIT=2079dd5fcd61f1ac39e2fc16595956617f3f1e9e
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform2 $PLATFORM2_ROOT
pushd $PLATFORM2_ROOT
git checkout $PLATFORM2_COMMIT
popd
# minijail does not exist in upstream linux distros.
MINIJAIL_COMMIT=debdf5de5a0ae3b667bee2f8fb1f755b0b3f5a6c
MINIJAIL_COMMIT=5f9e3001c61626d2863dad91248ba8496c3ef511
git clone --single-branch --no-checkout https://android.googlesource.com/platform/external/minijail $AOSP_EXTERNAL_ROOT/minijail
pushd $AOSP_EXTERNAL_ROOT/minijail
git checkout $MINIJAIL_COMMIT
@@ -26,38 +26,25 @@ cp libminijail.so /usr/lib/x86_64-linux-gnu/
popd
# Pull the cras library for audio access.
ADHD_COMMIT=a1e0869b95c845c4fe6234a7b92fdfa6acc1e809
ADHD_COMMIT=5068bdd18b51de8f2d5bcff754cdecda80de8f44
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/third_party/adhd $THIRD_PARTY_ROOT/adhd
pushd $THIRD_PARTY_ROOT/adhd
git checkout $ADHD_COMMIT
popd
# Pull vHost (dataplane for virtio backend drivers)
VHOST_COMMIT=3091854e27242d09453004b011f701fa29c0b8e8
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/third_party/rust-vmm/vhost $THIRD_PARTY_ROOT/rust-vmm/vhost
pushd $THIRD_PARTY_ROOT/rust-vmm/vhost
git checkout $VHOST_COMMIT
popd
CROSVM_VERSION=e42a43d880b0364b55559dbeade3af174f929001
CROSVM_VERSION=f70350ba51e9631e3b7fe711c0296e041a61a499
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform/crosvm /platform/crosvm
pushd /platform/crosvm
git checkout "$CROSVM_VERSION"
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
bindgen \
-j ${FDO_CI_CONCURRENT:-4} \
--root /usr/local \
$EXTRA_CARGO_ARGS
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
-j ${FDO_CI_CONCURRENT:-4} \
--locked \
--features 'default-no-sandbox gpu x virgl_renderer virgl_renderer_next' \
--features 'default-no-sandbox gpu x virtio-gpu-next' \
--path . \
--root /usr/local \
$EXTRA_CARGO_ARGS
popd
rm -rf $PLATFORM2_ROOT $AOSP_EXTERNAL_ROOT/minijail $THIRD_PARTY_ROOT/adhd $THIRD_PARTY_ROOT/rust-vmm /platform/crosvm
rm -rf $PLATFORM2_ROOT $AOSP_EXTERNAL_ROOT/minijail $THIRD_PARTY_ROOT/adhd /platform/crosvm

View File

@@ -4,6 +4,6 @@ set -ex
cargo install --locked deqp-runner \
-j ${FDO_CI_CONCURRENT:-4} \
--version 0.10.0 \
--version 0.7.2 \
--root /usr/local \
$EXTRA_CARGO_ARGS

View File

@@ -6,7 +6,7 @@ git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"
git clone \
https://github.com/KhronosGroup/VK-GL-CTS.git \
-b vulkan-cts-1.2.7.1 \
-b vulkan-cts-1.2.6.2 \
--depth 1 \
/VK-GL-CTS
pushd /VK-GL-CTS
@@ -43,10 +43,8 @@ mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl
# Copy out the mustpass lists we want.
mkdir /deqp/mustpass
for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt) ; do
cat /VK-GL-CTS/external/vulkancts/mustpass/master/$mustpass \
>> /deqp/mustpass/vk-master.txt
done
cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \
/deqp/mustpass/vk-master.txt
cp \
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \

View File

@@ -4,7 +4,7 @@ set -ex
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
pushd /piglit
git checkout 7d7dd2688c214e1b3c00f37226500cbec4a58efb
git checkout 11025faf96df23debbefd3678fe959eaa35a50f0
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
cmake -S . -B . -G Ninja -DCMAKE_BUILD_TYPE=Release $PIGLIT_OPTS $EXTRA_CMAKE_ARGS
ninja $PIGLIT_BUILD_TARGETS

View File

@@ -15,10 +15,10 @@ ln -s /usr/local/bin $HOME/.cargo/bin
# version of the compiler, rather than whatever the container's Debian comes
# with.
#
# Pick the rust compiler (1.48) available in Debian stable, and pick a specific
# Pick the rust compiler (1.41) available in Debian stable, and pick a specific
# snapshot from rustup so the compiler doesn't drift on us.
wget https://sh.rustup.rs -O - | \
sh -s -- -y --default-toolchain 1.49.0-2020-12-31
sh -s -- -y --default-toolchain 1.41.1-2020-02-27
# Set up a config script for cross compiling -- cargo needs your system cc for
# linking in cross builds, but doesn't know what you want to use for system cc.

View File

@@ -1,17 +0,0 @@
#!/bin/bash
set -ex
git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"
git clone \
https://github.com/intel/libva-utils.git \
-b 2.13.0 \
--depth 1 \
/va-utils
pushd /va-utils
meson build -D tests=true -Dprefix=/va $EXTRA_MESON_ARGS
ninja -C build install
popd
rm -rf /va-utils

View File

@@ -10,7 +10,7 @@ ninja -C build install
popd
rm -rf /epoxy
VIRGLRENDERER_VERSION=f2ab66c6c00065b2944f4cd9d965ee455c535271
VIRGLRENDERER_VERSION=08e11a495429c222f150b6d6f8c4936f2f0e0759
git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git --single-branch --no-checkout /virglrenderer
pushd /virglrenderer
git checkout "$VIRGLRENDERER_VERSION"

View File

@@ -17,7 +17,7 @@ cat >$cross_file <<EOF
[binaries]
ar = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-ar'
c = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables']
cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables']
cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables', '-static-libstdc++']
c_ld = 'lld'
cpp_ld = 'lld'
strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-strip'

View File

@@ -8,8 +8,6 @@ elif [ $DEBIAN_ARCH = amd64 ]; then
ARCH_PACKAGES="firmware-amd-graphics
libelf1
libllvm11
libva2
libva-drm2
"
fi

View File

@@ -43,6 +43,7 @@ apt-get -y install \
llvm-11-dev \
meson \
pkg-config \
python-is-python3 \
python3-mako \
python3-pil \
python3-pip \

View File

@@ -14,6 +14,7 @@ apt-get install -y --no-remove \
fastboot \
netcat \
procps \
python-is-python3 \
python3-distutils \
python3-minimal \
python3-serial \

View File

@@ -58,6 +58,7 @@ apt-get install -y --no-remove \
make \
meson \
pkg-config \
python-is-python3 \
python3-mako \
python3-pil \
python3-requests \

View File

@@ -41,6 +41,7 @@ apt-get install -y --no-remove \
libxkbcommon0 \
libxrandr2 \
libxrender1 \
python-is-python3 \
python3-mako \
python3-numpy \
python3-packaging \

View File

@@ -12,6 +12,7 @@ STABLE_EPHEMERAL=" \
bc \
bison \
bzip2 \
cargo \
ccache \
clang-11 \
cmake \
@@ -100,7 +101,6 @@ PIGLIT_OPTS="-DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitl
############### Build Crosvm
. .gitlab-ci/container/build-rust.sh
. .gitlab-ci/container/build-crosvm.sh
rm -rf /root/.cargo

View File

@@ -120,10 +120,6 @@ wine \
. .gitlab-ci/container/container_pre_build.sh
############### Build libdrm
. .gitlab-ci/container/build-libdrm.sh
############### Build parallel-deqp-runner's hang-detection tool
. .gitlab-ci/container/build-hang-detection.sh
@@ -150,6 +146,10 @@ setup_wine "/vkd3d-proton-wine64"
. .gitlab-ci/container/build-vkd3d-proton.sh
############### Build libdrm
. .gitlab-ci/container/build-libdrm.sh
############### Uninstall the build software
ccache --show-stats

View File

@@ -27,22 +27,19 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
KERNEL_ARCH="arm64"
DEFCONFIG="arch/arm64/configs/defconfig"
DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8096-db820c.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb"
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots.dtb"
KERNEL_IMAGE_NAME="Image"
elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
GCC_ARCH="arm-linux-gnueabihf"
KERNEL_ARCH="arm"
DEFCONFIG="arch/arm/configs/multi_v7_defconfig"
DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb"
DEVICE_TREES+=" arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
DEVICE_TREES+=" arch/arm/boot/dts/imx6q-cubox-i.dtb"
DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
KERNEL_IMAGE_NAME="zImage"
. .gitlab-ci/container/create-cross-file.sh armhf
else
@@ -51,7 +48,6 @@ else
DEFCONFIG="arch/x86/configs/x86_64_defconfig"
DEVICE_TREES=""
KERNEL_IMAGE_NAME="bzImage"
ARCH_PACKAGES="libva-dev"
fi
# Determine if we're in a cross build.
@@ -73,7 +69,6 @@ fi
apt-get update
apt-get install -y --no-remove \
${ARCH_PACKAGES} \
automake \
bc \
cmake \
@@ -132,7 +127,8 @@ rm -rf /apitrace
############### Build dEQP runner
. .gitlab-ci/container/build-deqp-runner.sh
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
mv /usr/local/bin/*-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
mv /usr/local/bin/piglit-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
############### Build dEQP
@@ -145,11 +141,6 @@ mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
mv /piglit /lava-files/rootfs-${DEBIAN_ARCH}/.
############### Build libva tests
if [[ "$DEBIAN_ARCH" = "amd64" ]]; then
. .gitlab-ci/container/build-va-tools.sh
mv /va/bin/* /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/
fi
############### Build libdrm
EXTRA_MESON_ARGS+=" -D prefix=/libdrm"
@@ -186,8 +177,6 @@ rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
# created.
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH
find /libdrm/ -name lib\*\.so\* | xargs cp -t /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH/.
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/libdrm/
cp -Rp /libdrm/share /lava-files/rootfs-${DEBIAN_ARCH}/libdrm/share
rm -rf /libdrm

View File

@@ -1,11 +1,6 @@
CONFIG_LOCALVERSION_AUTO=y
CONFIG_DEBUG_KERNEL=y
CONFIG_PWM=y
CONFIG_PM_DEVFREQ=y
CONFIG_OF=y
CONFIG_CROS_EC=y
# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
CONFIG_BLK_DEV_INITRD=n
@@ -62,7 +57,7 @@ CONFIG_X86_AMD_FREQ_SENSITIVITY=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_AMD=y
CONFIG_DRM_AMDGPU=m
CONFIG_DRM_AMDGPU_SI=y
CONFIG_DRM_AMDGPU_SI=m
CONFIG_DRM_AMDGPU_USERPTR=y
CONFIG_DRM_AMD_ACP=n
CONFIG_ACPI_WMI=y

View File

@@ -18,8 +18,6 @@ if sh $CROSVM_TEST_SCRIPT; then
touch /results/success
fi
sleep 5 # Leave some time to get the last output flushed out
poweroff -d -n -f || true
sleep 10 # Just in case init would exit before the kernel shuts down the VM

View File

@@ -9,7 +9,6 @@ export EGL_PLATFORM=surfaceless
export -p > /crosvm-env.sh
export GALLIUM_DRIVER="$CROSVM_GALLIUM_DRIVER"
export GALLIVM_PERF="nopt"
export LIBGL_ALWAYS_SOFTWARE="true"
CROSVM_KERNEL_ARGS="root=my_root rw rootfstype=virtiofs loglevel=3 init=$CI_PROJECT_DIR/install/crosvm-init.sh ip=192.168.30.2::192.168.30.1:255.255.255.0:crosvm:eth0"
@@ -30,13 +29,10 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
# Crosvm wants this
syslogd > /dev/null
# We aren't testing LLVMPipe here, so we don't need to validate NIR on the host
export NIR_VALIDATE=0
crosvm run \
--gpu "$CROSVM_GPU_ARGS" \
--gpu gles=false,backend=3d,egl=true,surfaceless=true \
-m 4096 \
-c $((FDO_CI_CONCURRENT > 1 ? FDO_CI_CONCURRENT - 1 : 1)) \
-c 4 \
--disable-sandbox \
--shared-dir /:my_root:type=fs:writeback=true:timeout=60:cache=always \
--host_ip=192.168.30.1 --netmask=255.255.255.0 --mac "AA:BB:CC:00:00:12" \

View File

@@ -6,9 +6,5 @@
# reliable to be run in parallel with other tests due to CPU-side timing.
dEQP-GLES[0-9]*.functional.flush_finish.*
# piglit: WGL is Windows-only
wgl@.*
# These are sensitive to CPU timing, and would need to be run in isolation
# on the system rather than in parallel with other tests.
glx@glx_arb_sync_control@timing.*
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/4575
dEQP-VK.wsi.display.get_display_plane_capabilities

View File

@@ -2,8 +2,30 @@
set -ex
DEQP_WIDTH=${DEQP_WIDTH:-256}
DEQP_HEIGHT=${DEQP_HEIGHT:-256}
DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0}
DEQP_VARIANT=${DEQP_VARIANT:-master}
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=${DEQP_SURFACE_TYPE:-pbuffer}"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
if [ -z "$DEQP_VER" ]; then
echo 'DEQP_VER must be set to something like "gles2", "gles31-khr" or "vk" for the test run'
exit 1
fi
if [ "$DEQP_VER" = "vk" ]; then
if [ -z "$VK_DRIVER" ]; then
echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run'
exit 1
fi
fi
if [ -z "$GPU_VERSION" ]; then
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in .gitlab-ci/gpu-version-*.txt)'
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in .gitlab-ci/deqp-gpu-version-*.txt)'
exit 1
fi
@@ -14,103 +36,145 @@ export LD_LIBRARY_PATH=`pwd`/install/lib/
export EGL_PLATFORM=surfaceless
export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.${VK_CPU:-`uname -m`}.json
# the runner was failing to look for libkms in /usr/local/lib for some reason
# I never figured out.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
RESULTS=`pwd`/${DEQP_RESULTS_DIR:-results}
mkdir -p $RESULTS
HANG_DETECTION_CMD=""
if [ -z "$DEQP_SUITE" ]; then
if [ -z "$DEQP_VER" ]; then
echo 'DEQP_SUITE must be set to the name of your deqp-gpu_version.toml, or DEQP_VER must be set to something like "gles2", "gles31-khr" or "vk" for the test run'
exit 1
fi
DEQP_WIDTH=${DEQP_WIDTH:-256}
DEQP_HEIGHT=${DEQP_HEIGHT:-256}
DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0}
DEQP_VARIANT=${DEQP_VARIANT:-master}
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=${DEQP_SURFACE_TYPE:-pbuffer}"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG"
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
if [ "$DEQP_VER" = "vk" -a -z "$VK_DRIVER" ]; then
echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run'
exit 1
fi
# Generate test case list file.
if [ "$DEQP_VER" = "vk" ]; then
MUSTPASS=/deqp/mustpass/vk-$DEQP_VARIANT.txt
DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk
HANG_DETECTION_CMD="/parallel-deqp-runner/build/bin/hang-detection"
elif [ "$DEQP_VER" = "gles2" -o "$DEQP_VER" = "gles3" -o "$DEQP_VER" = "gles31" -o "$DEQP_VER" = "egl" ]; then
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER
elif [ "$DEQP_VER" = "gles2-khr" -o "$DEQP_VER" = "gles3-khr" -o "$DEQP_VER" = "gles31-khr" -o "$DEQP_VER" = "gles32-khr" ]; then
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
DEQP=/deqp/external/openglcts/modules/glcts
else
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
DEQP=/deqp/external/openglcts/modules/glcts
fi
cp $MUSTPASS /tmp/case-list.txt
# If the caselist is too long to run in a reasonable amount of time, let the job
# specify what fraction (1/n) of the caselist we should run. Note: N~M is a gnu
# sed extension to match every nth line (first line is #1).
if [ -n "$DEQP_FRACTION" ]; then
sed -ni 1~$DEQP_FRACTION"p" /tmp/case-list.txt
fi
# If the job is parallel at the gitab job level, take the corresponding fraction
# of the caselist.
if [ -n "$CI_NODE_INDEX" ]; then
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
fi
if [ -n "$DEQP_CASELIST_FILTER" ]; then
sed -ni "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt
fi
if [ -n "$DEQP_CASELIST_INV_FILTER" ]; then
sed -ni "/$DEQP_CASELIST_INV_FILTER/!p" /tmp/case-list.txt
fi
if [ ! -s /tmp/case-list.txt ]; then
echo "Caselist generation failed"
exit 1
fi
# Generate test case list file.
if [ "$DEQP_VER" = "vk" ]; then
cp /deqp/mustpass/vk-$DEQP_VARIANT.txt /tmp/case-list.txt
DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk
HANG_DETECTION_CMD="/parallel-deqp-runner/build/bin/hang-detection"
elif [ "$DEQP_VER" = "gles2" -o "$DEQP_VER" = "gles3" -o "$DEQP_VER" = "gles31" -o "$DEQP_VER" = "egl" ]; then
cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt
DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER
SUITE=dEQP
elif [ "$DEQP_VER" = "gles2-khr" -o "$DEQP_VER" = "gles3-khr" -o "$DEQP_VER" = "gles31-khr" -o "$DEQP_VER" = "gles32-khr" ]; then
cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt
DEQP=/deqp/external/openglcts/modules/glcts
SUITE=dEQP
else
cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt
DEQP=/deqp/external/openglcts/modules/glcts
SUITE=KHR
fi
if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
# If the caselist is too long to run in a reasonable amount of time, let the job
# specify what fraction (1/n) of the caselist we should run. Note: N~M is a gnu
# sed extension to match every nth line (first line is #1).
if [ -n "$DEQP_FRACTION" ]; then
sed -ni 1~$DEQP_FRACTION"p" /tmp/case-list.txt
fi
# If the job is parallel at the gitab job level, take the corresponding fraction
# of the caselist.
if [ -n "$CI_NODE_INDEX" ]; then
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
fi
if [ -n "$DEQP_CASELIST_FILTER" ]; then
sed -ni "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt
fi
if [ -n "$DEQP_CASELIST_INV_FILTER" ]; then
sed -ni "/$DEQP_CASELIST_INV_FILTER/!p" /tmp/case-list.txt
fi
if [ ! -s /tmp/case-list.txt ]; then
echo "Caselist generation failed"
exit 1
fi
if [ -e "$INSTALL/deqp-$GPU_VERSION-fails.txt" ]; then
DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --baseline $INSTALL/deqp-$GPU_VERSION-fails.txt"
fi
# Default to an empty known flakes file if it doesn't exist.
touch $INSTALL/$GPU_VERSION-flakes.txt
touch $INSTALL/deqp-$GPU_VERSION-flakes.txt
if [ -n "$VK_DRIVER" ] && [ -e "$INSTALL/$VK_DRIVER-skips.txt" ]; then
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$VK_DRIVER-skips.txt"
fi
if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GALLIUM_DRIVER-skips.txt"
fi
if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$DRIVER_NAME-skips.txt"
fi
if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GPU_VERSION-skips.txt"
if [ -e "$INSTALL/deqp-$GPU_VERSION-skips.txt" ]; then
DEQP_SKIPS="$INSTALL/deqp-$GPU_VERSION-skips.txt"
fi
set +e
if [ -n "$DEQP_PARALLEL" ]; then
JOB="--jobs $DEQP_PARALLEL"
elif [ -n "$FDO_CI_CONCURRENT" ]; then
JOB="--jobs $FDO_CI_CONCURRENT"
else
JOB="--jobs 4"
fi
# If this CI lab lacks artifacts support, print the whole list of failures/flakes.
if [ -n "$DEQP_NO_SAVE_RESULTS" ]; then
SUMMARY_LIMIT="--summary-limit 0"
fi
run_cts() {
deqp=$1
caselist=$2
output=$3
deqp-runner \
run \
--deqp $deqp \
--output $RESULTS \
--caselist $caselist \
--skips $INSTALL/deqp-all-skips.txt $DEQP_SKIPS \
--flakes $INSTALL/deqp-$GPU_VERSION-flakes.txt \
--testlog-to-xml /deqp/executor/testlog-to-xml \
$JOB \
$SUMMARY_LIMIT \
$DEQP_RUNNER_OPTIONS \
-- \
$DEQP_OPTIONS
}
parse_renderer() {
RENDERER=`grep -A1 TestCaseResult.\*info.renderer $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'`
VERSION=`grep -A1 TestCaseResult.\*info.version $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'`
echo "Renderer: $RENDERER"
echo "Version: $VERSION "
if ! echo $RENDERER | grep -q $DEQP_EXPECTED_RENDERER; then
echo "Expected GL_RENDERER $DEQP_EXPECTED_RENDERER"
exit 1
fi
}
check_renderer() {
if echo $DEQP_VER | grep -q egl; then
return
fi
echo "Capturing renderer info for GLES driver sanity checks"
# If you're having trouble loading your driver, uncommenting this may help
# debug.
# export EGL_LOG_LEVEL=debug
VERSION=`echo $DEQP_VER | cut -d '-' -f1 | tr '[a-z]' '[A-Z]'`
export LD_PRELOAD=$TEST_LD_PRELOAD
$DEQP $DEQP_OPTIONS --deqp-case=$SUITE-$VERSION.info.\* --deqp-log-filename=$RESULTS/deqp-info.qpa
export LD_PRELOAD=
parse_renderer
}
check_vk_device_name() {
echo "Capturing device info for VK driver sanity checks"
export LD_PRELOAD=$TEST_LD_PRELOAD
$DEQP $DEQP_OPTIONS --deqp-case=dEQP-VK.info.device --deqp-log-filename=$RESULTS/deqp-info.qpa
export LD_PRELOAD=
DEVICENAME=`grep deviceName $RESULTS/deqp-info.qpa | sed 's|deviceName: ||g'`
echo "deviceName: $DEVICENAME"
if ! echo $DEVICENAME | grep -q "$DEQP_EXPECTED_RENDERER"; then
echo "Expected deviceName $DEQP_EXPECTED_RENDERER"
exit 1
fi
}
report_load() {
echo "System load: $(cut -d' ' -f1-3 < /proc/loadavg)"
echo "# of CPU cores: $(cat /proc/cpuinfo | grep processor | wc -l)"
@@ -133,48 +197,27 @@ if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
fi
GALLIUM_DRIVER=llvmpipe \
GALLIVM_PERF="nopt" \
GALLIVM_PERF="nopt,no_filter_hacks" \
virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 &
sleep 1
fi
if [ -z "$DEQP_SUITE" ]; then
if [ -n "$DEQP_EXPECTED_RENDERER" ]; then
export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --renderer-check "$DEQP_EXPECTED_RENDERER""
fi
if [ $DEQP_VER != vk -a $DEQP_VER != egl ]; then
export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --version-check `cat $INSTALL/VERSION | sed 's/[() ]/./g'`"
fi
deqp-runner \
run \
--deqp $DEQP \
--output $RESULTS \
--caselist /tmp/case-list.txt \
--skips $INSTALL/all-skips.txt $DEQP_SKIPS \
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
--testlog-to-xml /deqp/executor/testlog-to-xml \
--jobs ${FDO_CI_CONCURRENT:-4} \
$DEQP_RUNNER_OPTIONS \
-- \
$DEQP_OPTIONS
if [ $DEQP_VER = vk ]; then
quiet check_vk_device_name
else
deqp-runner \
suite \
--suite $INSTALL/deqp-$DEQP_SUITE.toml \
--output $RESULTS \
--skips $INSTALL/all-skips.txt $DEQP_SKIPS \
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
--testlog-to-xml /deqp/executor/testlog-to-xml \
--fraction-start $CI_NODE_INDEX \
--fraction $CI_NODE_TOTAL \
--jobs ${FDO_CI_CONCURRENT:-4} \
$DEQP_RUNNER_OPTIONS
quiet check_renderer
fi
RESULTS_CSV=$RESULTS/results.csv
FAILURES_CSV=$RESULTS/failures.csv
export LD_PRELOAD=$TEST_LD_PRELOAD
run_cts $DEQP /tmp/case-list.txt $RESULTS_CSV
DEQP_EXITCODE=$?
export LD_PRELOAD=
quiet report_load
# Remove all but the first 50 individual XML files uploaded as artifacts, to
@@ -189,8 +232,8 @@ find $RESULTS -name \*.xml \
-exec cp /deqp/testlog.css /deqp/testlog.xsl "$RESULTS/" ";" \
-quit
deqp-runner junit \
--testsuite dEQP \
$HANG_DETECTION_CMD deqp-runner junit \
--testsuite $DEQP_VER \
--results $RESULTS/failures.csv \
--output $RESULTS/junit.xml \
--limit 50 \
@@ -201,8 +244,8 @@ if [ -n "$FLAKES_CHANNEL" ]; then
python3 $INSTALL/report-flakes.py \
--host irc.oftc.net \
--port 6667 \
--results $RESULTS/results.csv \
--known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
--results $RESULTS_CSV \
--known-flakes $INSTALL/deqp-$GPU_VERSION-flakes.txt \
--channel "$FLAKES_CHANNEL" \
--runner "$CI_RUNNER_DESCRIPTION" \
--job "$CI_JOB_ID" \

View File

@@ -1,70 +0,0 @@
#!/bin/sh
set -ex
INSTALL=`pwd`/install
# Set up the driver environment.
export LD_LIBRARY_PATH=`pwd`/install/lib/
export LIBVA_DRIVERS_PATH=`pwd`/install/lib/dri/
# libva spams driver open info by default, and that happens per testcase.
export LIBVA_MESSAGING_LEVEL=1
if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
GTEST_RUNNER_OPTIONS="$GTEST_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
fi
# Default to an empty known flakes file if it doesn't exist.
touch $INSTALL/$GPU_VERSION-flakes.txt
if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GALLIUM_DRIVER-skips.txt"
fi
if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$DRIVER_NAME-skips.txt"
fi
if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GPU_VERSION-skips.txt"
fi
set +e
gtest-runner \
run \
--gtest $GTEST \
--output ${GTEST_RESULTS_DIR:-results} \
--jobs ${FDO_CI_CONCURRENT:-4} \
$GTEST_SKIPS \
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
--fraction-start ${CI_NODE_INDEX:-1} \
--fraction $((${CI_NODE_TOTAL:-1} * ${GTEST_FRACTION:-1})) \
--env "LD_PRELOAD=$TEST_LD_PRELOAD" \
$GTEST_RUNNER_OPTIONS
GTEST_EXITCODE=$?
deqp-runner junit \
--testsuite gtest \
--results $RESULTS/failures.csv \
--output $RESULTS/junit.xml \
--limit 50 \
--template "See https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/results/{{testcase}}.xml"
# Report the flakes to the IRC channel for monitoring (if configured):
if [ -n "$FLAKES_CHANNEL" ]; then
python3 $INSTALL/report-flakes.py \
--host irc.oftc.net \
--port 6667 \
--results $RESULTS/results.csv \
--known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
--channel "$FLAKES_CHANNEL" \
--runner "$CI_RUNNER_DESCRIPTION" \
--job "$CI_JOB_ID" \
--url "$CI_JOB_URL" \
--branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \
--branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}"
fi
exit $GTEST_EXITCODE

View File

@@ -5,7 +5,8 @@
interruptible: true
variables:
GIT_STRATEGY: none # testing doesn't build anything from source
FDO_CI_CONCURRENT: 6 # should be replaced by per-machine definitions
DEQP_PARALLEL: 6 # should be replaced by per-machine definitions
DEQP_NO_SAVE_RESULTS: 1 # but why not ... ?
DEQP_VER: gles2
# proxy used to cache data locally
FDO_HTTP_CACHE_URI: "http://caching-proxy/cache/?uri="
@@ -18,7 +19,6 @@
JOB_ROOTFS_OVERLAY_PATH: "${JOB_ARTIFACTS_BASE}/job-rootfs-overlay.tar.gz"
JOB_RESULTS_PATH: "${JOB_ARTIFACTS_BASE}/results.tar.gz"
PIGLIT_NO_WINDOW: 1
VISIBILITY_GROUP: "Collabora+fdo"
script:
- ./artifacts/lava/lava-submit.sh
artifacts:

View File

@@ -34,7 +34,6 @@ artifacts/lava/lava_job_submitter.py \
--mesa-build-url "${FDO_HTTP_CACHE_URI:-}https://${MESA_BUILD_PATH}" \
--job-rootfs-overlay-url "${FDO_HTTP_CACHE_URI:-}https://${JOB_ROOTFS_OVERLAY_PATH}" \
--job-artifacts-base ${JOB_ARTIFACTS_BASE} \
--job-timeout ${JOB_TIMEOUT:-30} \
--first-stage-init artifacts/ci-common/init-stage1.sh \
--ci-project-dir ${CI_PROJECT_DIR} \
--device-type ${DEVICE_TYPE} \
@@ -43,5 +42,4 @@ artifacts/lava/lava_job_submitter.py \
--kernel-image-name ${KERNEL_IMAGE_NAME} \
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
--boot-method ${BOOT_METHOD} \
--visibility-group ${VISIBILITY_GROUP} \
--lava-tags "${LAVA_TAGS}" >> results/lava.log

View File

@@ -34,23 +34,9 @@ import urllib.parse
import xmlrpc
import yaml
from datetime import datetime, timedelta
from datetime import datetime
from lavacli.utils import loader
# Timeout in minutes to decide if the device from the dispatched LAVA job has
# hung or not due to the lack of new log output.
DEVICE_HANGING_TIMEOUT_MIN = 5
# How many seconds the script should wait before try a new polling iteration to
# check if the dispatched LAVA job is running or waiting in the job queue.
WAIT_FOR_DEVICE_POLLING_TIME_SEC = 10
# How many seconds to wait between log output LAVA RPC calls.
LOG_POLLING_TIME_SEC = 5
# How many retries should be made when a timeout happen.
NUMBER_OF_RETRIES_TIMEOUT_DETECTION = 2
def print_log(msg):
print("{}: {}".format(datetime.now(), msg))
@@ -64,14 +50,14 @@ def generate_lava_yaml(args):
values = {
'job_name': 'mesa: {}'.format(args.pipeline_info),
'device_type': args.device_type,
'visibility': { 'group': [ args.visibility_group ] },
'visibility': { 'group': [ 'Collabora+fdo'] },
'priority': 75,
'context': {
'extra_nfsroot_args': ' init=/init rootwait minio_results={}'.format(args.job_artifacts_base)
},
'timeouts': {
'job': {
'minutes': args.job_timeout
'minutes': 30
}
},
}
@@ -111,7 +97,7 @@ def generate_lava_yaml(args):
# skeleton test definition: only declaring each job as a single 'test'
# since LAVA's test parsing is not useful to us
test = {
'timeout': { 'minutes': args.job_timeout },
'timeout': { 'minutes': 30 },
'failure_retry': 1,
'definitions': [ {
'name': 'mesa',
@@ -126,7 +112,7 @@ def generate_lava_yaml(args):
'format': 'Lava-Test Test Definition 1.0',
},
'parse': {
'pattern': r'hwci: (?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
'pattern': 'hwci: (?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
},
'run': {
},
@@ -224,44 +210,19 @@ def get_job_results(proxy, job_id, test_suite, test_case):
return True
def wait_until_job_is_started(proxy, job_id):
print_log(f"Waiting for job {job_id} to start.")
current_state = "Submitted"
waiting_states = ["Submitted", "Scheduling", "Scheduled"]
while current_state in waiting_states:
job_state = _call_proxy(proxy.scheduler.job_state, job_id)
current_state = job_state["job_state"]
time.sleep(WAIT_FOR_DEVICE_POLLING_TIME_SEC)
print_log(f"Job {job_id} started.")
def follow_job_execution(proxy, job_id):
line_count = 0
finished = False
last_time_logs = datetime.now()
while not finished:
(finished, data) = _call_proxy(proxy.scheduler.jobs.logs, job_id, line_count)
logs = yaml.load(str(data), Loader=loader(False))
if logs:
# Reset the timeout
last_time_logs = datetime.now()
for line in logs:
print("{} {}".format(line["dt"], line["msg"]))
line_count += len(logs)
else:
time_limit = timedelta(minutes=DEVICE_HANGING_TIMEOUT_MIN)
if datetime.now() - last_time_logs > time_limit:
print_log("LAVA job {} doesn't advance (machine got hung?). Retry.".format(job_id))
return False
# `proxy.scheduler.jobs.logs` does not block, even when there is no
# new log to be fetched. To avoid dosing the LAVA dispatcher
# machine, let's add a sleep to save them some stamina.
time.sleep(LOG_POLLING_TIME_SEC)
return True
def show_job_data(proxy, job_id):
show = _call_proxy(proxy.scheduler.jobs.show, job_id)
@@ -296,22 +257,13 @@ def main(args):
print("LAVA job definition validated successfully")
return
retry_count = NUMBER_OF_RETRIES_TIMEOUT_DETECTION
while retry_count >= 0:
while True:
job_id = submit_job(proxy, yaml_file)
print_log("LAVA job id: {}".format(job_id))
wait_until_job_is_started(proxy, job_id)
if not follow_job_execution(proxy, job_id):
print_log(f"Job {job_id} has timed out. Cancelling it.")
# Cancel the job as it is considered unreachable by Mesa CI.
proxy.scheduler.jobs.cancel(job_id)
retry_count -= 1
continue
follow_job_execution(proxy, job_id)
show_job_data(proxy, job_id)
@@ -332,7 +284,6 @@ if __name__ == '__main__':
parser.add_argument("--mesa-build-url")
parser.add_argument("--job-rootfs-overlay-url")
parser.add_argument("--job-artifacts-base")
parser.add_argument("--job-timeout", type=int)
parser.add_argument("--first-stage-init")
parser.add_argument("--ci-project-dir")
parser.add_argument("--device-type")
@@ -344,7 +295,6 @@ if __name__ == '__main__':
parser.add_argument("--jwt")
parser.add_argument("--validate-only", action='store_true')
parser.add_argument("--dump-yaml", action='store_true')
parser.add_argument("--visibility-group")
parser.set_defaults(func=main)
args = parser.parse_args()

View File

@@ -0,0 +1,6 @@
# WGL is Windows-only
wgl@.*
# These are sensitive to CPU timing, and would need to be run in isolation
# on the system rather than in parallel with other tests.
glx@glx_arb_sync_control@timing.*

View File

@@ -3,7 +3,7 @@
set -ex
if [ -z "$GPU_VERSION" ]; then
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in your ci/gpu-version-*.txt)'
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in your ci/piglit-gpu-version-*.txt)'
exit 1
fi
@@ -28,45 +28,47 @@ if [ -n "$CI_NODE_INDEX" ]; then
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --fraction-start ${CI_NODE_INDEX}"
fi
if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
if [ -e "$INSTALL/piglit-$GPU_VERSION-fails.txt" ]; then
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --baseline $INSTALL/piglit-$GPU_VERSION-fails.txt"
fi
# Default to an empty known flakes file if it doesn't exist.
touch $INSTALL/$GPU_VERSION-flakes.txt
touch $INSTALL/piglit-$GPU_VERSION-flakes.txt
if [ -n "$VK_DRIVER" ] && [ -e "$INSTALL/$VK_DRIVER-skips.txt" ]; then
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$VK_DRIVER-skips.txt"
fi
if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GALLIUM_DRIVER-skips.txt"
fi
if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$DRIVER_NAME-skips.txt"
fi
if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GPU_VERSION-skips.txt"
if [ -e "$INSTALL/piglit-$GPU_VERSION-skips.txt" ]; then
PIGLIT_SKIPS="$INSTALL/piglit-$GPU_VERSION-skips.txt"
fi
set +e
piglit-runner \
run \
--piglit-folder /piglit \
--output $RESULTS \
--jobs ${FDO_CI_CONCURRENT:-4} \
--skips $INSTALL/all-skips.txt $PIGLIT_SKIPS \
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
--profile $PIGLIT_PROFILES \
--process-isolation \
$PIGLIT_RUNNER_OPTIONS \
-v -v
if [ -n "$PIGLIT_PARALLEL" ]; then
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --jobs $PIGLIT_PARALLEL"
elif [ -n "$FDO_CI_CONCURRENT" ]; then
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --jobs $FDO_CI_CONCURRENT"
else
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --jobs 4"
fi
RESULTS_CSV=$RESULTS/results.csv
FAILURES_CSV=$RESULTS/failures.csv
export LD_PRELOAD=$TEST_LD_PRELOAD
piglit-runner \
run \
--piglit-folder /piglit \
--output $RESULTS \
--skips $INSTALL/piglit/piglit-all-skips.txt $PIGLIT_SKIPS \
--flakes $INSTALL/piglit-$GPU_VERSION-flakes.txt \
--profile $PIGLIT_PROFILES \
--process-isolation \
$PIGLIT_RUNNER_OPTIONS \
-v -v
PIGLIT_EXITCODE=$?
export LD_PRELOAD=
deqp-runner junit \
--testsuite $PIGLIT_PROFILES \
--results $RESULTS/failures.csv \
@@ -79,8 +81,8 @@ if [ -n "$FLAKES_CHANNEL" ]; then
python3 $INSTALL/report-flakes.py \
--host irc.oftc.net \
--port 6667 \
--results $RESULTS/results.csv \
--known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
--results $RESULTS_CSV \
--known-flakes $INSTALL/piglit-$GPU_VERSION-flakes.txt \
--channel "$FLAKES_CHANNEL" \
--runner "$CI_RUNNER_DESCRIPTION" \
--job "$CI_JOB_ID" \

View File

@@ -107,7 +107,7 @@ else
LD_LIBRARY_PATH="$__LD_LIBRARY_PATH" \
GALLIUM_DRIVER=llvmpipe \
GALLIVM_PERF="nopt" \
GALLIVM_PERF="nopt,no_filter_hacks" \
VTEST_USE_EGL_SURFACELESS=1 \
VTEST_USE_GLES=1 \
virgl_test_server >"$RESULTS"/vtest-log.txt 2>&1 &
@@ -160,6 +160,18 @@ replay_minio_upload_images() {
else
__MINIO_PATH="$JOB_ARTIFACTS_BASE"
__DESTINATION_FILE_PATH="$__MINIO_TRACES_PREFIX/${line##*-}"
# Adding to the JUnit the direct link to the diff page in
# the dashboard
__PIGLIT_TESTCASE_CLASSNAME="piglit\.trace\.$PIGLIT_REPLAY_DEVICE_NAME\.$(dirname $__TRACE | sed 's%/%\\.%g;s@%@\\%@')"
__PIGLIT_TESTCASE_NAME="$(basename $__TRACE | sed 's%\.%_%g;s@%@\\%@')"
__DASHBOARD_URL="https://tracie.freedesktop.org/dashboard/imagediff/${CI_PROJECT_PATH}/${CI_JOB_ID}/${__TRACE}"
__START_TEST_PATTERN='<testcase classname="'"${__PIGLIT_TESTCASE_CLASSNAME}"'" name="'"${__PIGLIT_TESTCASE_NAME}"'" status="fail"'
__REPLACE_TEST_PATTERN='</system-out><failure type="fail"/></testcase>'
# Replace in the range between __START_TEST_PATTERN and
# __REPLACE_TEST_PATTERN leaving __START_TEST_PATTERN out
# from the substitution
sed '\%'"${__START_TEST_PATTERN}"'%,\%'"${__REPLACE_TEST_PATTERN}"'%{\%'"${__START_TEST_PATTERN}"'%b;s%'"${__REPLACE_TEST_PATTERN}"'%</system-out><failure type="fail">To view the image differences visit: '"${__DASHBOARD_URL}"'</failure></testcase>%}' \
-i "$RESULTS"/junit.xml
fi
ci-fairy minio cp $MINIO_ARGS "$RESULTS/$__PREFIX/$line" \
@@ -200,11 +212,6 @@ fi
FAILURE_MESSAGE=$(printf "%s" "Unexpected change in results:")
if [ "x$PIGLIT_PROFILES" = "xreplay" ] \
&& [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then
ci-fairy minio login $MINIO_ARGS $CI_JOB_JWT
fi
eval $RUN_CMD
if [ $? -ne 0 ]; then
@@ -230,6 +237,8 @@ mkdir -p .gitlab-ci/piglit
if [ "x$PIGLIT_PROFILES" = "xreplay" ] \
&& [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then
ci-fairy minio login $MINIO_ARGS $CI_JOB_JWT
__PREFIX="trace/$PIGLIT_REPLAY_DEVICE_NAME"
__MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL"
__MINIO_TRACES_PREFIX="traces"

View File

@@ -18,7 +18,7 @@ if [ -n "$CROSS" ]; then
else
STRIP="strip"
fi
if [ -z "$ARTIFACTS_DEBUG_SYMBOLS" ]; then
if [ -z "$ARTIFACTS_DEBUG_SYMBOLS"]; then
find install -name \*.so -exec $STRIP {} \;
fi
@@ -31,13 +31,13 @@ cp -Rp .gitlab-ci/piglit install/
cp -Rp .gitlab-ci/fossils.yml install/
cp -Rp .gitlab-ci/fossils install/
cp -Rp .gitlab-ci/fossilize-runner.sh install/
cp -Rp .gitlab-ci/deqp-runner.sh install/
cp -Rp .gitlab-ci/crosvm-runner.sh install/
cp -Rp .gitlab-ci/crosvm-init.sh install/
cp -Rp .gitlab-ci/*.txt install/
cp -Rp .gitlab-ci/deqp-*.txt install/
cp -Rp .gitlab-ci/report-flakes.py install/
cp -Rp .gitlab-ci/vkd3d-proton install/
cp -Rp .gitlab-ci/*-runner.sh install/
find . -path \*/ci/\*.txt \
-o -path \*/ci/\*.toml \
-o -path \*/ci/\*traces\*.yml \
| xargs -I '{}' cp -p '{}' install/

View File

@@ -151,8 +151,6 @@
.freedreno-rules:
stage: freedreno
rules:
- if: '$FD_FARM == "offline"'
when: never
- *ignore_scheduled_pipelines
- changes:
*mesa_core_file_list
@@ -163,7 +161,7 @@
- changes:
*vulkan_file_list
when: on_success
- changes: &freedreno_file_list
- changes:
# Note: when https://gitlab.com/gitlab-org/gitlab/-/issues/198688
# is supported, we can change the src/freedreno/ rule to explicitly
# exclude tools
@@ -173,57 +171,6 @@
when: on_success
- when: never
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
# rules duplication manually
.freedreno-rules-restricted:
stage: freedreno
rules:
- if: '$FD_FARM == "offline"'
when: never
# If the triggerer has access to the restricted traces and if it is pre-merge
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu)$/") &&
($GITLAB_USER_LOGIN != "marge-bot" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME)'
when: never
- *ignore_scheduled_pipelines
- changes:
*mesa_core_file_list
when: on_success
- changes:
*gallium_core_file_list
when: on_success
- changes:
*vulkan_file_list
when: on_success
- changes:
*freedreno_file_list
when: on_success
- when: never
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
# rules duplication manually
.freedreno-rules-performance:
stage: freedreno
rules:
- if: '$FD_FARM == "offline"'
when: never
- *ignore_scheduled_pipelines
# Run only on pre-merge pipelines from Marge
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
when: never
- changes:
*mesa_core_file_list
when: manual
- changes:
*gallium_core_file_list
when: manual
- changes:
*vulkan_file_list
when: manual
- changes:
*freedreno_file_list
when: manual
- when: never
.panfrost-midgard-rules:
stage: arm
rules:
@@ -239,7 +186,6 @@
- src/gallium/winsys/panfrost/**/*
when: on_success
- changes: &panfrost_common_file_list
- src/panfrost/ci/*
- src/panfrost/include/*
- src/panfrost/lib/*
- src/panfrost/shared/*
@@ -266,12 +212,6 @@
- changes:
*panfrost_gallium_file_list
when: on_success
- changes:
*vulkan_file_list
when: on_success
- changes: &panfrost_vulkan_file_list
- src/panfrost/vulkan/*
when: on_success
- changes:
- src/panfrost/bifrost/**/*
when: on_success
@@ -398,25 +338,6 @@
when: on_success
- when: never
.radeonsi-vaapi-rules:
stage: amd
rules:
- *ignore_scheduled_pipelines
- changes:
*mesa_core_file_list
when: on_success
- changes:
*gallium_core_file_list
when: on_success
- changes:
*radeonsi_file_list
when: on_success
- changes: &radeon_vcn_file_list
- src/gallium/frontends/va/**/*
- src/gallium/drivers/radeon/**/*
when: on_success
- when: never
.i915g-rules:
stage: intel
rules:
@@ -444,33 +365,13 @@
- changes:
*gallium_core_file_list
when: on_success
- changes: &iris_file_list
- changes:
- src/gallium/drivers/iris/**/*
- src/gallium/winsys/iris/**/*
- src/intel/**/*
when: on_success
- when: never
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
# rules duplication manually
.iris-rules-performance:
stage: intel
rules:
- *ignore_scheduled_pipelines
# Run only on pre-merge pipelines from Marge
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
when: never
- changes:
*mesa_core_file_list
when: manual
- changes:
*gallium_core_file_list
when: manual
- changes:
*iris_file_list
when: manual
- when: never
.anv-rules:
stage: intel
rules:
@@ -556,26 +457,6 @@
when: on_success
- when: never
.etnaviv-rules:
stage: etnaviv
rules:
- *ignore_scheduled_pipelines
- changes:
*mesa_core_file_list
when: on_success
- changes:
*gallium_core_file_list
when: on_success
- changes:
- src/etnaviv/**/*
- src/gallium/drivers/etnaviv/**/*
- src/gallium/winsys/etnaviv/**/*
- src/gallium/auxiliary/renderonly/**/*
- src/gallium/winsys/kmsro/**/*
- src/gallium/winsys/etnaviv/**/*
when: on_success
- when: never
# Rules for unusual architectures that only build a subset of drivers
.ppc64el-rules:
rules:

View File

@@ -9,7 +9,7 @@ Write-Host "Compiling Mesa"
$builddir = New-Item -ItemType Directory -Name "_build"
$installdir = New-Item -ItemType Directory -Name "_install"
Push-Location $builddir.FullName
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson --default-library=shared -Dzlib:default_library=static --buildtype=release -Db_ndebug=false -Dc_std=c17 -Dcpp_std=vc++latest -Db_vscrt=mt --cmake-prefix-path=`"C:\llvm-10`" --pkg-config-path=`"C:\llvm-10\lib\pkgconfig;C:\llvm-10\share\pkgconfig;C:\spirv-tools\lib\pkgconfig`" --prefix=`"$installdir`" -Dllvm=enabled -Dshared-llvm=disabled -Dvulkan-drivers=swrast,amd -Dgallium-drivers=swrast,d3d12,zink -Dshared-glapi=enabled -Dgles2=enabled -Dmicrosoft-clc=enabled -Dstatic-libclc=all -Dspirv-to-dxil=true -Dbuild-tests=true -Dwerror=true -Dwarning_level=2 -Dzlib:warning_level=1 -Dlibelf:warning_level=1 && ninja -j32 install && meson test --num-processes 32"
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson --default-library=shared -Dzlib:default_library=static --buildtype=release -Db_ndebug=false -Dc_std=c17 -Dcpp_std=vc++latest -Db_vscrt=mt --cmake-prefix-path=`"C:\llvm-10`" --pkg-config-path=`"C:\llvm-10\lib\pkgconfig;C:\llvm-10\share\pkgconfig;C:\spirv-tools\lib\pkgconfig`" --prefix=`"$installdir`" -Dllvm=enabled -Dshared-llvm=disabled -Dvulkan-drivers=swrast,amd -Dgallium-drivers=swrast,d3d12,zink -Dmicrosoft-clc=enabled -Dstatic-libclc=all -Dbuild-tests=true -Dwerror=true -Dwarning_level=2 -Dzlib:warning_level=1 -Dlibelf:warning_level=1 && ninja -j32 install && meson test --num-processes 32"
$buildstatus = $?
Pop-Location

View File

@@ -1,8 +1,6 @@
$env:PIGLIT_NO_FAST_SKIP = 1
Copy-Item -Path _install\bin\opengl32.dll -Destination C:\Piglit\lib\piglit\bin\opengl32.dll
Copy-Item -Path _install\bin\libgallium_wgl.dll -Destination C:\Piglit\lib\piglit\bin\libgallium_wgl.dll
Copy-Item -Path _install\bin\libglapi.dll -Destination C:\Piglit\lib\piglit\bin\libglapi.dll
# Run this using VsDevCmd.bat to ensure DXIL.dll is in %PATH%
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && py -3 C:\Piglit\bin\piglit.py run `"$env:PIGLIT_PROFILE`" $env:PIGLIT_OPTIONS $env:PIGLIT_TESTS .\results"

View File

@@ -364,6 +364,7 @@ spec/!opengl 2.0/vertex-program-two-side/tcs-out, tes and fs: skip
spec/!opengl 2.0/vertex-program-two-side/tes-out and fs: skip
spec/!opengl 2.0/vertex-program-two-side/vs, gs and fs: skip
spec/!opengl 2.0/vertex-program-two-side/vs, tcs, tes and fs: skip
spec/!opengl 2.1/fbo-mrt-alphatest-no-buffer-zero-write: crash
spec/!opengl 3.0/bound-resource-limits: fail
spec/!opengl 3.0/clearbuffer-depth-cs-probe: skip
spec/!opengl 3.0/required-sized-texture-formats: fail
@@ -2389,6 +2390,7 @@ spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 7: sk
spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 8: skip
spec/arb_texture_buffer_object/bufferstorage: skip
spec/arb_texture_buffer_object/data-sync: fail
spec/arb_texture_buffer_object/get: fail
spec/arb_texture_buffer_object/indexed: skip
spec/arb_texture_buffer_object/negative-unsupported: skip
spec/arb_texture_buffer_object/subdata-sync: fail
@@ -4749,9 +4751,9 @@ wgl/wgl-sanity: skip
summary:
name: results
---- --------
pass: 13303
fail: 535
crash: 67
pass: 13301
fail: 536
crash: 68
skip: 4126
timeout: 0
warn: 10

File diff suppressed because it is too large Load Diff

View File

@@ -1,138 +0,0 @@
# This file contains the GitLab handle of the maintainers/reviewers for
# a given file:
# https://docs.gitlab.com/ce/user/project/code_owners.html
#
# Consider these as the list of people who want to be involved in MRs
# touching these files/folders, and whom you can ask your questions and
# tag in issues.
#
# As of GitLab 14.3, all features surrounding this file are premium-only,
# which means this file is only read by humans for now.
#
# Paths starting with a `/` are relative to the git root, otherwise they
# can match any substring of the file's path.
# If multiple lines match, only the last one applies; there is no
# accumulation.
##################
# INFRASTRUCTURE #
##################
# Build system - Meson
meson.build @dbaker @eric
/meson_options.txt @dbaker @eric
/docs/meson.rst @dbaker @eric
# Build system - Android
/android/ @roman.stratiienko
# Compatibility headers
/include/c99* @evelikov
/include/c11* @eric
# Documentation
/docs/ @eric @evelikov
##########
# COMMON #
##########
# NIR
/src/compiler/nir/ @jekstrand
# Vulkan
/src/vulkan/ @eric @jekstrand
/include/vulkan/ @eric @jekstrand
#############
# PLATFORMS #
#############
# EGL
/src/egl/ @eric @evelikov
/include/EGL/ @eric @evelikov
# EGL - Android support
/src/egl/drivers/dri2/platform_android.c @robh @tfiga
# EGL - Device support
/src/egl/drivers/dri2/platform_device.c @evelikov
# EGL - Wayland support
/src/egl/wayland/ @daniels @eric
/src/egl/drivers/dri2/platform_wayland.c @daniels @eric
# Gallium targets
/src/gallium/targets/ @evelikov
# GLX
/src/glx/ @ajax
/include/GL/glx* @ajax
# GLVND
/src/egl/main/eglglvnd.c @kbrenneman
/src/egl/main/egldispatchstubs.* @kbrenneman
/src/egl/generate/ @kbrenneman
/src/glx/*glvnd* @kbrenneman
# Haiku
/include/HaikuGL/ @kallisti5
/src/egl/drivers/haiku/ @kallisti5
/src/gallium/frontends/hgl/ @kallisti5
/src/gallium/targets/haiku-softpipe/ @kallisti5
/src/gallium/winsys/sw/hgl/ @kallisti5
/src/hgl/ @kallisti5
# Loader - DRI/classic
/src/loader/ @evelikov
# Loader - Gallium
/src/gallium/auxiliary/pipe-loader/ @evelikov
/src/gallium/auxiliary/target-helpers/ @evelikov
# Vulkan WSI - Display
/src/vulkan/wsi/wsi_common_display.* @keithp
/src/*/vulkan/*_wsi_display.c @keithp
###########
# Drivers #
###########
# Asahi
/src/asahi/ @alyssa
/src/gallium/drivers/asahi/ @alyssa
# Freedreno
/src/gallium/drivers/freedreno/ @robclark
# Intel
/include/drm-uapi/i915_drm.h @kwg @llandwerlin @jekstrand @idr
/include/pci_ids/i*_pci_ids.h @kwg @llandwerlin @jekstrand @idr
/src/intel/ @kwg @llandwerlin @jekstrand @idr
/src/gallium/winsys/iris/ @kwg @llandwerlin @jekstrand @idr
/src/gallium/drivers/iris/ @kwg @llandwerlin @jekstrand @idr
/src/gallium/drivers/i915/ @anholt
/src/mesa/drivers/dri/i965/ @kwg @llandwerlin @jekstrand @idr
/doxygen/i965.doxy @kwg @llandwerlin @jekstrand @idr
# Microsoft
/src/microsoft/ @jenatali
/src/gallium/drivers/d3d12/ @jenatali
# Panfrost
/src/panfrost/ @alyssa
/src/panfrost/vulkan/ @bbrezillon
/src/gallium/drivers/panfrost/ @alyssa
# SWR
/src/gallium/drivers/swr/ @jzielins @krzysztof.raszkowski
/docs/gallium/drivers/openswr.rst @jzielins @krzysztof.raszkowski
/docs/gallium/drivers/openswr/ @jzielins @krzysztof.raszkowski
# VMware
/src/gallium/drivers/svga/ @brianp @charmainel
/src/gallium/winsys/svga/ @thomash @drawat

114
REVIEWERS Normal file
View File

@@ -0,0 +1,114 @@
Overview:
This file is similar in syntax (or more precisly a subset) of what is
used by the MAINTAINERS file in the linux kernel.
The purpose is not exactly the same the MAINTAINERS file in the linux
kernel, as there are not official/formal maintainers of different
subsystems in mesa, but is meant to give an idea of who to CC for
various patches for review.
Descriptions of section entries:
R: Designated reviewer: FullName <address@domain>
These reviewers should be CCed on patches.
F: Files and directories with wildcard patterns.
A trailing slash includes all files and subdirectory files.
F: drivers/net/ all files in and below drivers/net
F: drivers/net/* all files in drivers/net, but not below
F: */net/* all files in "any top level directory"/net
One pattern per line. Multiple F: lines acceptable.
Maintainers List (try to look for most precise areas first)
Note: this is an opt-in system, I have not tried to add anyone who hasn't
either asked me or sent a patch to add themselves.
-----------------------------------
NIR
R: Jason Ekstrand <jason@jlekstrand.net>
F: src/compiler/nir/
DOCUMENTATION
R: Emil Velikov <emil.l.velikov@gmail.com>
R: Eric Engestrom <eric@engestrom.ch>
F: docs/
COMPATIBILITY HEADERS
R: Emil Velikov <emil.l.velikov@gmail.com>
F: include/c99*
DRI LOADER
R: Emil Velikov <emil.l.velikov@gmail.com>
F: src/loader/
EGL
R: Eric Engestrom <eric@engestrom.ch>
R: Emil Velikov <emil.l.velikov@gmail.com>
F: src/egl/
F: include/EGL/
HAIKU
R: Alexander von Gluck IV <kallisti5@unixzen.com>
F: include/HaikuGL/
F: src/egl/drivers/haiku/
F: src/gallium/frontends/hgl/
F: src/gallium/targets/haiku-softpipe/
F: src/gallium/winsys/sw/hgl/
F: src/hgl/
GALLIUM LOADER
R: Emil Velikov <emil.l.velikov@gmail.com>
F: src/gallium/auxiliary/pipe-loader/
F: src/gallium/auxiliary/target-helpers/
GALLIUM TARGETS
R: Emil Velikov <emil.l.velikov@gmail.com>
F: src/gallium/targets/
ANDROID BUILD
R: Emil Velikov <emil.l.velikov@gmail.com>
R: Rob Herring <robh@kernel.org>
F: CleanSpec.mk
F: */Android.*mk
F: */Makefile.sources
MESON BUILD
R: Dylan Baker <dylan@pnwbakers.com>
R: Eric Engestrom <eric@engestrom.ch>
F: */meson.build
F: meson.build
F: meson_options.txt
ANDROID EGL SUPPORT
R: Rob Herring <robh@kernel.org>
R: Tomasz Figa <tfiga@chromium.org>
F: src/egl/drivers/dri2/platform_android.c
WAYLAND EGL SUPPORT
R: Daniel Stone <daniels@collabora.com>
F: src/egl/wayland/*
F: src/egl/drivers/dri2/platform_wayland.c
FREEDRENO
R: Rob Clark <robclark@freedesktop.org>
F: src/gallium/drivers/freedreno/
GLX
R: Adam Jackson <ajax@redhat.com>
F: src/glx/
VULKAN
R: Eric Engestrom <eric@engestrom.ch>
F: src/vulkan/
F: include/vulkan/
VMWARE DRIVER
R: Brian Paul <brianp@vmware.com>
R: Charmaine Lee <charmainel@vmware.com>
F: src/gallium/drivers/svga/
VMWARE WINSYS CODE
R: Thomas Hellstrom <thellstrom@vmware.com>
R: Deepak Rawat <drawat@vmware.com>
F: src/gallium/winsys/svga/

View File

@@ -1 +1 @@
21.3.9
21.2.2

View File

@@ -32,7 +32,6 @@ MESA_VK_LIB_SUFFIX_amd := radeon
MESA_VK_LIB_SUFFIX_intel := intel
MESA_VK_LIB_SUFFIX_freedreno := freedreno
MESA_VK_LIB_SUFFIX_broadcom := broadcom
MESA_VK_LIB_SUFFIX_panfrost := panfrost
MESA_VK_LIB_SUFFIX_virtio-experimental := virtio
MESA_VK_LIB_SUFFIX_swrast := lvp
@@ -75,10 +74,10 @@ MESON_GEN_PKGCONFIGS += libdrm_nouveau:$(LIBDRM_VERSION)
endif
ifneq ($(MESON_GEN_LLVM_STUB),)
MESON_LLVM_VERSION := 12.0.0
MESON_LLVM_VERSION := 11.0.0
# Required for swr gallium target
MESON_LLVM_IRBUILDER_PATH := external/llvm-project/llvm/include/llvm/IR/IRBuilder.h
LOCAL_SHARED_LIBRARIES += libLLVM12
LOCAL_SHARED_LIBRARIES += libLLVM11
endif
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0)

View File

@@ -88,12 +88,11 @@ MESON_GEN_NINJA := \
-Ddri-search-path=/vendor/$(MESA3D_LIB_DIR)/dri \
-Dplatforms=android \
-Dplatform-sdk-version=$(PLATFORM_SDK_VERSION) \
-Ddri-drivers=$(subst $(space),$(comma),$(BOARD_MESA3D_CLASSIC_DRIVERS)) \
-Ddri-drivers= \
-Dgallium-drivers=$(subst $(space),$(comma),$(BOARD_MESA3D_GALLIUM_DRIVERS)) \
-Dvulkan-drivers=$(subst $(space),$(comma),$(subst radeon,amd,$(BOARD_MESA3D_VULKAN_DRIVERS))) \
-Dgbm=enabled \
-Degl=enabled \
-Dcpp_rtti=false \
MESON_BUILD := PATH=/usr/bin:/bin:/sbin:$$PATH ninja -C $(MESON_OUT_DIR)/build
@@ -129,6 +128,7 @@ $(MESON_GEN_FILES_TARGET): PRIVATE_C_INCLUDES := $(my_c_includes)
$(MESON_GEN_FILES_TARGET): PRIVATE_IMPORTED_INCLUDES := $(imported_includes)
$(MESON_GEN_FILES_TARGET): PRIVATE_LDFLAGS := $(my_ldflags)
$(MESON_GEN_FILES_TARGET): PRIVATE_LDLIBS := $(my_ldlibs)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
$(MESON_GEN_FILES_TARGET): PRIVATE_TIDY_CHECKS := $(my_tidy_checks)
$(MESON_GEN_FILES_TARGET): PRIVATE_TIDY_FLAGS := $(my_tidy_flags)
$(MESON_GEN_FILES_TARGET): PRIVATE_ARFLAGS := $(my_arflags)
@@ -139,11 +139,6 @@ $(MESON_GEN_FILES_TARGET): PRIVATE_ALL_OBJECTS := $(strip $(all_objects))
$(MESON_GEN_FILES_TARGET): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_CONLYFLAGS := $(my_target_global_conlyflags)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_LIBCRT_BUILTINS := $(my_target_libcrt_builtins)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_LIBATOMIC := $(my_target_libatomic)
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_CRTBEGIN_SO_O := $(my_target_crtbegin_so_o)
@@ -289,17 +284,13 @@ endef
$(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), $(eval $(call vulkan_target,$(driver))))
$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.targets.timestamp: MESA3D_GALLIUM_DRI_DIR:=$(MESA3D_GALLIUM_DRI_DIR)
$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.targets.timestamp: $(MESON_OUT_DIR)/install/.install.timestamp
$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: MESA3D_GALLIUM_DRI_DIR:=$(MESA3D_GALLIUM_DRI_DIR)
$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: $(MESON_OUT_DIR)/install/.install.timestamp
# Create Symlinks
mkdir -p $(dir $@)
# Create Symlinks for gallium and kmsro drivers
ls -1 $(MESA3D_GALLIUM_DRI_DIR)/ | PATH=/usr/bin:$$PATH xargs -I{} ln -s -f libgallium_dri.so $(dir $@)/{}
# Remove unwanted Symlinks created for classic dri drivers
$(foreach d,$(BOARD_MESA3D_CLASSIC_DRIVERS), rm $(dir $@)/$(d)_dri.so;)
# Copy classic dri drivers
$(foreach d,$(BOARD_MESA3D_CLASSIC_DRIVERS), cp $(MESA3D_GALLIUM_DRI_DIR)/$(d)_dri.so $(dir $@)/$(d)_dri.so;)
touch $@
$($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN): $(TARGET_OUT_VENDOR)/$(MESA3D_LIB_DIR)/dri/.targets.timestamp
$($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN): $(TARGET_OUT_VENDOR)/$(MESA3D_LIB_DIR)/dri/.symlinks.timestamp
echo "Build $@"
touch $@

View File

@@ -22,6 +22,7 @@
"""Script to install megadriver symlinks for meson."""
from __future__ import print_function
import argparse
import os

View File

@@ -47,7 +47,7 @@ SOURCES = [
'api': 'khr',
'inc_folder': 'KHR',
'sources': [
Source('include/KHR/khrplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/KHR/khrplatform.h'),
Source('include/KHR/khrplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/KHR/khrplatform.h'),
],
},
@@ -55,10 +55,10 @@ SOURCES = [
'api': 'egl',
'inc_folder': 'EGL',
'sources': [
Source('src/egl/generate/egl.xml', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/egl.xml'),
Source('include/EGL/egl.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/EGL/egl.h'),
Source('include/EGL/eglplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/EGL/eglplatform.h'),
Source('include/EGL/eglext.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/EGL/eglext.h'),
Source('src/egl/generate/egl.xml', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/egl.xml'),
Source('include/EGL/egl.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/EGL/egl.h'),
Source('include/EGL/eglplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/EGL/eglplatform.h'),
Source('include/EGL/eglext.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/EGL/eglext.h'),
Source('include/EGL/eglextchromium.h', 'https://chromium.googlesource.com/chromium/src/+/refs/heads/master/ui/gl/EGL/eglextchromium.h?format=TEXT'),
Source('include/EGL/eglext_angle.h', 'https://chromium.googlesource.com/angle/angle/+/refs/heads/master/include/EGL/eglext_angle.h?format=TEXT'),
Source('include/EGL/eglmesaext.h', None),
@@ -69,11 +69,11 @@ SOURCES = [
'api': 'gl',
'inc_folder': 'GL',
'sources': [
Source('src/mapi/glapi/registry/gl.xml', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/xml/gl.xml'),
Source('include/GL/glcorearb.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/glcorearb.h'),
Source('include/GL/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/glext.h'),
Source('include/GL/glxext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/glxext.h'),
Source('include/GL/wglext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/wglext.h'),
Source('src/mapi/glapi/registry/gl.xml', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/xml/gl.xml'),
Source('include/GL/glcorearb.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/glcorearb.h'),
Source('include/GL/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/glext.h'),
Source('include/GL/glxext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/glxext.h'),
Source('include/GL/wglext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/wglext.h'),
Source('include/GL/gl.h', None), # FIXME: I don't know what the canonical source is
Source('include/GL/glx.h', None), # FIXME: I don't know what the canonical source is
Source('include/GL/internal/', None),
@@ -86,10 +86,10 @@ SOURCES = [
'api': 'gles1',
'inc_folder': 'GLES',
'sources': [
Source('include/GLES/gl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/gl.h'),
Source('include/GLES/glplatform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/glplatform.h'),
Source('include/GLES/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/glext.h'),
Source('include/GLES/egl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/egl.h'),
Source('include/GLES/gl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/gl.h'),
Source('include/GLES/glplatform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/glplatform.h'),
Source('include/GLES/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/glext.h'),
Source('include/GLES/egl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/egl.h'),
],
},
@@ -97,9 +97,9 @@ SOURCES = [
'api': 'gles2',
'inc_folder': 'GLES2',
'sources': [
Source('include/GLES2/gl2.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES2/gl2.h'),
Source('include/GLES2/gl2platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES2/gl2platform.h'),
Source('include/GLES2/gl2ext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES2/gl2ext.h'),
Source('include/GLES2/gl2.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES2/gl2.h'),
Source('include/GLES2/gl2platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES2/gl2platform.h'),
Source('include/GLES2/gl2ext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES2/gl2ext.h'),
],
},
@@ -107,10 +107,10 @@ SOURCES = [
'api': 'gles3',
'inc_folder': 'GLES3',
'sources': [
Source('include/GLES3/gl3.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl3.h'),
Source('include/GLES3/gl31.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl31.h'),
Source('include/GLES3/gl32.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl32.h'),
Source('include/GLES3/gl3platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl3platform.h'),
Source('include/GLES3/gl3.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl3.h'),
Source('include/GLES3/gl31.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl31.h'),
Source('include/GLES3/gl32.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl32.h'),
Source('include/GLES3/gl3platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl3platform.h'),
Source('include/GLES3/gl3ext.h', None), # FIXME: I don't know what the canonical source is
],
},
@@ -155,27 +155,25 @@ SOURCES = [
'api': 'vulkan',
'inc_folder': 'vulkan',
'sources': [
Source('src/vulkan/registry/vk.xml', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/registry/vk.xml'),
Source('include/vulkan/vulkan.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan.h'),
Source('include/vulkan/vulkan_core.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_core.h'),
Source('include/vulkan/vulkan_beta.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_beta.h'),
Source('include/vulkan/vk_icd.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vk_icd.h'),
Source('include/vulkan/vk_layer.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vk_layer.h'),
Source('include/vulkan/vk_platform.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vk_platform.h'),
Source('include/vulkan/vulkan_android.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_android.h'),
Source('include/vulkan/vulkan_directfb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_directfb.h'),
Source('include/vulkan/vulkan_fuchsia.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_fuchsia.h'),
Source('include/vulkan/vulkan_ggp.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_ggp.h'),
Source('include/vulkan/vulkan_ios.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_ios.h'),
Source('include/vulkan/vulkan_macos.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_macos.h'),
Source('include/vulkan/vulkan_metal.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_metal.h'),
Source('include/vulkan/vulkan_screen.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_screen.h'),
Source('include/vulkan/vulkan_vi.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_vi.h'),
Source('include/vulkan/vulkan_wayland.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_wayland.h'),
Source('include/vulkan/vulkan_win32.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_win32.h'),
Source('include/vulkan/vulkan_xcb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xcb.h'),
Source('include/vulkan/vulkan_xlib.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib.h'),
Source('include/vulkan/vulkan_xlib_xrandr.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib_xrandr.h'),
Source('src/vulkan/registry/vk.xml', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/registry/vk.xml'),
Source('include/vulkan/vulkan.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan.h'),
Source('include/vulkan/vulkan_core.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_core.h'),
Source('include/vulkan/vulkan_beta.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_beta.h'),
Source('include/vulkan/vk_icd.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vk_icd.h'),
Source('include/vulkan/vk_layer.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vk_layer.h'),
Source('include/vulkan/vk_platform.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vk_platform.h'),
Source('include/vulkan/vulkan_android.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_android.h'),
Source('include/vulkan/vulkan_fuchsia.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_fuchsia.h'),
Source('include/vulkan/vulkan_ggp.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_ggp.h'),
Source('include/vulkan/vulkan_ios.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_ios.h'),
Source('include/vulkan/vulkan_macos.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_macos.h'),
Source('include/vulkan/vulkan_metal.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_metal.h'),
Source('include/vulkan/vulkan_vi.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_vi.h'),
Source('include/vulkan/vulkan_wayland.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_wayland.h'),
Source('include/vulkan/vulkan_win32.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_win32.h'),
Source('include/vulkan/vulkan_xcb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_xcb.h'),
Source('include/vulkan/vulkan_xlib.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_xlib.h'),
Source('include/vulkan/vulkan_xlib_xrandr.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_xlib_xrandr.h'),
Source('include/vulkan/vk_android_native_buffer.h', 'https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/include/vulkan/vk_android_native_buffer.h?format=TEXT'),
Source('include/vulkan/.editorconfig', None),
],

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python3
#!/usr/bin/env python
# encoding=utf-8
# Copyright © 2017 Intel Corporation
@@ -20,6 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
from __future__ import print_function
import os

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python3
#!/usr/bin/env python
import argparse
import os
@@ -21,9 +21,6 @@ PLATFORM_SYMBOLS = [
'_end',
'_fini',
'_init',
'_fbss',
'_fdata',
'_ftext',
]
def get_symbols_nm(nm, lib):
@@ -73,7 +70,7 @@ def get_symbols_dumpbin(dumpbin, lib):
continue
symbol_name = fields[3]
# De-mangle symbols
if symbol_name[0] == '_' and '@' in symbol_name:
if symbol_name[0] == '_':
symbol_name = symbol_name[1:].split('@')[0]
symbols.append(symbol_name)
return symbols

View File

@@ -8,11 +8,9 @@ if [ ! -e .git ]; then
fi
if [ ! -d platform-hardware-libhardware ]; then
git clone --depth 1 https://android.googlesource.com/platform/frameworks/native platform-frameworks-native
git clone --depth 1 https://android.googlesource.com/platform/hardware/libhardware platform-hardware-libhardware
git clone --depth 1 https://android.googlesource.com/platform/system/core platform-system-core
git clone --depth 1 https://android.googlesource.com/platform/system/logging platform-system-logging
git clone --depth 1 https://android.googlesource.com/platform/system/unwinding platform-system-unwinding
git clone --depth 1 https://android.googlesource.com/platform/frameworks/native platform-frameworks-native
fi
dest=include/android_stub
@@ -27,14 +25,14 @@ mkdir ${dest}
# These directories contains mostly only the files we need, so copy wholesale
cp -av \
platform-frameworks-native/libs/nativewindow/include/vndk \
platform-frameworks-native/libs/nativebase/include/nativebase \
platform-system-core/libsync/include/ndk \
cp -av platform-frameworks-native/libs/nativewindow/include/vndk \
platform-system-core/libsync/include/sync \
platform-system-core/libsync/include/ndk \
platform-system-core/libbacktrace/include/backtrace \
platform-system-core/libsystem/include/system \
platform-system-logging/liblog/include/log \
platform-system-unwinding/libbacktrace/include/backtrace \
platform-system-core/liblog/include/log \
platform-frameworks-native/libs/nativewindow/include/apex \
platform-frameworks-native/libs/nativebase/include/nativebase \
${dest}
@@ -45,16 +43,15 @@ cp -av platform-hardware-libhardware/include/hardware/{hardware,gralloc,gralloc1
cp -av platform-frameworks-native/vulkan/include/hardware/hwvulkan.h ${dest}/hardware
mkdir ${dest}/cutils
cp -av platform-system-core/libcutils/include/cutils/{compiler,log,native_handle,properties,trace}.h ${dest}/cutils
cp -av platform-system-core/libcutils/include/cutils/{log,native_handle,properties}.h ${dest}/cutils
# include/android has files from a few different projects
mkdir ${dest}/android
cp -av \
platform-frameworks-native/libs/nativewindow/include/android/* \
cp -av platform-frameworks-native/libs/nativewindow/include/android/* \
platform-frameworks-native/libs/arect/include/android/* \
platform-system-core/liblog/include/android/* \
platform-system-core/libsync/include/android/* \
platform-system-logging/liblog/include/android/* \
${dest}/android

View File

@@ -1,8 +1,12 @@
Report a Bug
============
The Mesa bug database is hosted on
`freedesktop.org <https://freedesktop.org>`__. The old bug database on
SourceForge is no longer used.
To file a Mesa bug, go to `GitLab on
freedesktop.org <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__.
freedesktop.org <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__
Please follow these bug reporting guidelines:

View File

@@ -52,41 +52,6 @@ The three GitLab CI systems currently integrated are:
LAVA
docker
Application traces replay
-------------------------
The CI replays application traces with various drivers in two different jobs. The first
job replays traces listed in ``src/<driver>/ci/traces-<driver>.yml`` files and if any
of those traces fail the pipeline fails as well. The second job replays traces listed in
``src/<driver>/ci/restricted-traces-<driver>.yml`` and it is allowed to fail. This second
job is only created when the pipeline is triggered by `marge-bot` or any other user that
has been granted access to these traces.
A traces YAML file also includes a ``download-url`` pointing to a MinIO
instance where to download the traces from. While the first job should always work with
publicly accessible traces, the second job could point to an url with restricted access.
Restricted traces are those that have been made available to Mesa developers without a
license to redistribute at will, and thus should not be exposed to the public. Failing to
access that URL would not prevent the pipeline to pass, therefore forks made by
contributors without permissions to download non-redistributable traces can be merged
without friction.
As an aside, only maintainers of such non-redistributable traces are responsible for
ensuring that replays are successful, since other contributors would not be able to
download and test them by themselves.
Those Mesa contributors that believe they could have permission to access such
non-redistributable traces can request permission to Daniel Stone <daniels@collabora.com>.
gitlab.freedesktop.org accounts that are to be granted access to these traces will be
added to the OPA policy for the MinIO repository as per
https://gitlab.freedesktop.org/freedesktop/helm-gitlab-config/-/commit/a3cd632743019f68ac8a829267deb262d9670958 .
So the jobs are created in personal repositories, the name of the user's account needs
to be added to the rules attribute of the Gitlab CI job that accesses the restricted
accounts.
Intel CI
--------

View File

@@ -1,4 +1,4 @@
set $proxy_authorization '';
set $authorization '';
set_by_lua $proxyuri '
unescaped = ngx.unescape_uri(ngx.var.arg_uri);
@@ -13,12 +13,10 @@ set_by_lua $proxyuri '
host = it[3];
query = it[4];
if ngx.var.http_authorization and ngx.var.http_authorization ~= "" then
ngx.var.proxy_authorization = ngx.var.http_authorization;
elseif authstring then
if authstring then
auth = string.sub(authstring, 0, -2);
auth64 = ngx.encode_base64(auth);
ngx.var.proxy_authorization = "Basic " .. auth64;
ngx.var.authorization = "Basic " .. auth64;
end
-- Default to / if none is set to avoid using the request_uri query
@@ -30,7 +28,7 @@ set_by_lua $proxyuri '
';
add_header X-GG-Cache-Status $upstream_cache_status;
proxy_set_header Authorization $proxy_authorization;
proxy_set_header Authorization $authorization;
proxy_pass $proxyuri;
# Redirect back to ourselves on 301 replies

View File

@@ -22,7 +22,7 @@ cuts taken to get things up and running (which are mostly not inherent to
the xml schema, and should not be too difficult to remove from the py and
decode/disasm utility):
* Maximum "field" size is 64b
* Maximum "bitset" size is 64b
* Fixed instruction size
Often times, especially when new functionality is added in later gens
@@ -184,9 +184,6 @@ decoding. The display template consists of references to fields (which may
be derived fields) specified as ``{FIELDNAME}`` and other characters
which are just echoed through to the resulting decoded bitset.
It is possible to define a line column alignment value per field to influence
the visual output. It needs to be pecified as ``{FIELDNAME:align=xx}``.
The ``<override>`` element will be described in the next section, but it
provides for both different decoded instruction syntax/mnemonics (when
simply providing a different display template string) as well as instruction

View File

@@ -106,10 +106,9 @@ Windows
On Windows, building will create
``build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll`` which
is a drop-in alternative for system's ``opengl32.dll``, which will use
the Mesa ICD, ``build/windows-x86-debug/gallium/targets/wgl/libgallium_wgl.dll``.
To use it put both dlls in the same directory as your application. It can also
be used by replacing the native ICD driver, but it's quite an advanced usage, so if
is a drop-in alternative for system's ``opengl32.dll``. To use it put it
in the same directory as your application. It can also be used by
replacing the native ICD driver, but it's quite an advanced usage, so if
you need to ask, don't even try it.
There is however an easy way to replace the OpenGL software renderer
@@ -117,7 +116,7 @@ that comes with Microsoft Windows 7 (or later) with llvmpipe (that is,
on systems without any OpenGL drivers):
- copy
``build/windows-x86-debug/gallium/targets/wgl/libgallium_wgl.dll`` to
``build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll`` to
``C:\Windows\SysWOW64\mesadrv.dll``
- load this registry settings:

View File

@@ -1,10 +1,9 @@
Panfrost
========
The Panfrost driver stack includes an OpenGL ES implementation for Arm Mali
GPUs based on the Midgard and Bifrost microarchitectures. It is **conformant**
on Mali G52 but **non-conformant** on other GPUs. The following hardware is
currently supported:
The Panfrost driver stack includes a **non-conformant** OpenGL ES
implementation for Arm Mali GPUs based on the Midgard and Bifrost
microarchitectures. The following GPUs are currently supported:
========= ============ ============ =======
Product Architecture OpenGL ES OpenGL
@@ -40,16 +39,17 @@ it's easy to add support, see the commit ``cff7de4bb597e9`` as an example.
LLVM is *not* required by Panfrost's compilers. LLVM support in Mesa can
safely be disabled for most OpenGL ES users with Panfrost.
Build like ``meson . build/ -Ddri-drivers= -Dvulkan-drivers=
-Dgallium-drivers=panfrost -Dllvm=disabled`` for a build directory
Build with meson like ``meson . build/ -Ddri-drivers= -Dvulkan-drivers=
-Dgallium-drivers=panfrost -Dllvm=false`` for a build directory
``build``.
Building for Android via the legacy ``Android.mk`` system is not officially
supported but reportedly works. Your mileage may vary.
For general information on building Mesa, read :doc:`the install documentation
<../install>`.
Chat
----
Panfrost developers and users hang out on IRC at ``#panfrost`` on OFTC. Note
that registering and authenticating with `NickServ` is required to prevent
spam. `Join the chat. <https://webchat.oftc.net/?channels=#panfrost>`_
Panfrost developers and users hang out on IRC at ``#panfrost`` on OFTC.

View File

@@ -129,17 +129,11 @@ supported:
OpenGL 4.1
^^^^^^^^^^
For OpenGL 4.1 support, the following additional requirements needs to be
supported:
For OpenGL 4.1 support, the following additional ``VkPhysicalDeviceLimits``
are required:
* ``VkPhysicalDeviceFeatures``:
* ``multiViewport``
* ``VkPhysicalDeviceLimits``
* ``maxImageDimension2D`` ≥ 16384
* ``maxViewports`` ≥ 16
* ``maxImageDimension2D`` ≥ 16384
* ``maxViewports`` ≥ 16
OpenGL 4.2
^^^^^^^^^^
@@ -183,6 +177,7 @@ supported:
* ``VkPhysicalDeviceFeatures``:
* ``robustBufferAccess``
* ``multiViewport``
* Formats requiring ``VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT``:
@@ -232,23 +227,6 @@ are required to be supported
* `VK_KHR_draw_indirect_count`_
Performance
-----------
If you notice poor performance and high CPU usage while running an application,
changing the descriptor manager may improve performance:
.. envvar:: ZINK_DESCRIPTORS <mode> ("auto")
``auto``
Automatically detect best mode. This is the default.
``lazy``
Disable caching and attempt to use the least amount of CPU.
``nofallback``
Always use caching to try reducing GPU churn.
``notemplates``
The same as `auto`, but disables the use of `VK_KHR_descriptor_templates`.
Debugging
---------

View File

@@ -232,13 +232,12 @@ the :doc:`Xlib software driver page <xlibdriver>` for details.
:envvar:`MESA_GLX_ALPHA_BITS`
specifies default number of bits for alpha channel.
Intel driver environment variables
i945/i965 driver environment variables (non-Gallium)
----------------------------------------------------
:envvar:`INTEL_BLACKHOLE_DEFAULT`
if set to 1, true or yes, then the OpenGL implementation will
default ``GL_BLACKHOLE_RENDER_INTEL`` to true, thus disabling any
rendering.
:envvar:`INTEL_NO_HW`
if set to 1, prevents batches from being submitted to the hardware.
This is useful for debugging hangs, etc.
:envvar:`INTEL_DEBUG`
a comma-separated list of named flags, which do various things:
@@ -335,65 +334,8 @@ Intel driver environment variables
``vs``
dump shader assembly for vertex shaders
:envvar:`INTEL_MEASURE`
Collects GPU timestamps over common intervals, and generates a CSV report
to show how long rendering took. The overhead of collection is limited to
the flushing that is required at the interval boundaries for accurate
timestamps. By default, timing data is sent to ``stderr``. To direct output
to a file:
``INTEL_MEASURE=file=/tmp/measure.csv {workload}``
To begin capturing timestamps at a particular frame:
``INTEL_MEASURE=file=/tmp/measure.csv,start=15 {workload}``
To capture only 23 frames:
``INTEL_MEASURE=count=23 {workload}``
To capture frames 15-37, stopping before frame 38:
``INTEL_MEASURE=start=15,count=23 {workload}``
Designate an asynchronous control file with:
``INTEL_MEASURE=control=path/to/control.fifo {workload}``
As the workload runs, enable capture for 5 frames with:
``$ echo 5 > path/to/control.fifo``
Enable unbounded capture:
``$ echo -1 > path/to/control.fifo``
and disable with:
``$ echo 0 > path/to/control.fifo``
Select the boundaries of each snapshot with:
``INTEL_MEASURE=draw``
Collects timings for every render (DEFAULT)
``INTEL_MEASURE=rt``
Collects timings when the render target changes
``INTEL_MEASURE=batch``
Collects timings when batches are submitted
``INTEL_MEASURE=frame``
Collects timings at frame boundaries
With ``INTEL_MEASURE=interval=5``, the duration of 5 events will be
combined into a single record in the output. When possible, a single
start and end event will be submitted to the GPU to minimize
stalling. Combined events will not span batches, except in
the case of ``INTEL_MEASURE=frame``.
:envvar:`INTEL_NO_HW`
if set to 1, true or yes, prevents batches from being submitted to the
hardware. This is useful for debugging hangs, etc.
:envvar:`INTEL_SCALAR_VS` (or ``TCS``, ``TES``, ``GS``)
force scalar/vec4 mode for a shader stage (Gen8-9 only)
:envvar:`INTEL_PRECISE_TRIG`
if set to 1, true or yes, then the driver prefers accuracy over
performance in trig functions.
@@ -411,6 +353,10 @@ Intel driver environment variables
The success of assembly override would be signified by "Successfully
overrode shader with sha1 <sha1>" in stderr replacing the original
assembly.
:envvar:`INTEL_BLACKHOLE_DEFAULT`
if set to 1, true or yes, then the OpenGL implementation will
default ``GL_BLACKHOLE_RENDER_INTEL`` to true, thus disabling any
rendering.
Radeon driver environment variables (radeon, r200, and r300g)
@@ -419,13 +365,6 @@ Radeon driver environment variables (radeon, r200, and r300g)
:envvar:`RADEON_NO_TCL`
if set, disable hardware-accelerated Transform/Clip/Lighting.
DRI environment variables
-------------------------
:envvar:`DRI_NO_MSAA`
disable MSAA for GLX/EGL MSAA visuals
EGL environment variables
-------------------------
@@ -618,6 +557,8 @@ RADV driver environment variables
force all allocated buffers to be referenced in submissions
``checkir``
validate the LLVM IR before LLVM compiles the shader
``errors``
display more info about errors
``forcecompress``
Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports it
but normally does not deem it beneficial.
@@ -633,8 +574,6 @@ RADV driver environment variables
class of application bugs appearing as flickering.
``metashaders``
dump internal meta shaders
``noatocdithering``
disable dithering for alpha to coverage
``nobinning``
disable primitive binning
``nocache``
@@ -657,8 +596,6 @@ RADV driver environment variables
disable memory shaders cache
``nongg``
disable NGG for GFX10+
``nonggc``
disable NGG culling on GPUs where it's enabled by default (GFX10.3+ only).
``nooutoforder``
disable out-of-order rasterization
``notccompatcmask``
@@ -670,8 +607,6 @@ RADV driver environment variables
disable VRS for flat shading (only on GFX10.3+)
``preoptir``
dump LLVM IR before any optimizations
``prologs``
dump vertex shader prologs
``shaders``
dump shaders
``shaderstats``
@@ -704,9 +639,6 @@ RADV driver environment variables
enable wave32 for compute shaders (GFX10+)
``dccmsaa``
enable DCC for MSAA images
``force_emulate_rt``
forces ray-tracing to be emulated in software,
even if there is hardware support.
``gewave32``
enable wave32 for vertex/tess/geometry shaders (GFX10+)
``localbos``
@@ -716,7 +648,7 @@ RADV driver environment variables
``pswave32``
enable wave32 for pixel shaders (GFX10+)
``nggc``
enable NGG culling on GPUs where it's not enabled by default (GFX10.1 only).
enable NGG culling on GFX10+ GPUs.
``rt``
enable rt extensions whose implementation is still experimental.
``sam``
@@ -758,6 +690,8 @@ radeonsi driver environment variables
Disable DCC.
``nodccclear``
Disable DCC fast clear.
``nodccfb``
Disable separate DCC on the main framebuffer
``nodccmsaa``
Disable DCC for MSAA
``nodpbb``
@@ -834,6 +768,12 @@ radeonsi driver environment variables
Always use NGG culling even when it can hurt.
``nonggc``
Disable NGG culling.
``alwayspd``
Always enable the primitive discard compute shader.
``pd``
Enable the primitive discard compute shader for large draw calls.
``nopd``
Disable the primitive discard compute shader.
``switch_on_eop``
Program WD/IA to switch on end-of-packet.
``nooutoforder``

View File

@@ -41,7 +41,7 @@ GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
glBindFragDataLocation, glGetFragDataLocation DONE
GL_NV_conditional_render (Conditional rendering) DONE ()
GL_ARB_map_buffer_range (Map buffer subranges) DONE (v3d, vc4, lima)
GL_ARB_color_buffer_float (Clamping controls) DONE (v3d, lima)
GL_ARB_color_buffer_float (Clamping controls) DONE (v3d)
GL_ARB_texture_float (Float textures, renderbuffers) DONE (v3d)
GL_EXT_packed_float DONE (v3d)
GL_EXT_texture_shared_exponent DONE (v3d)
@@ -74,7 +74,7 @@ GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
Forward compatible context support/deprecations DONE
GL_ARB_draw_instanced (Instanced drawing) DONE (v3d)
GL_ARB_copy_buffer (Buffer copying) DONE (v3d, vc4, lima)
GL_NV_primitive_restart (Primitive restart) DONE (v3d)
GL_NV_primitive_restart (Primitive restart) DONE ()
16 vertex texture image units DONE ()
GL_ARB_texture_buffer_object (Texture buffer objs) DONE ()
GL_ARB_texture_rectangle (Rectangular textures) DONE (v3d, vc4, lima)
@@ -206,14 +206,14 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, zink
- input/output block locations DONE
GL_ARB_multi_bind DONE (all drivers)
GL_ARB_query_buffer_object DONE (i965/hsw+, virgl)
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, softpipe, swr, virgl, v3d, panfrost)
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, softpipe, swr, virgl, panfrost)
GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, softpipe, swr, virgl, v3d, panfrost, d3d12)
GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost, d3d12)
GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi, llvmpipe, zink
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, softpipe, virgl)
GL_ARB_clip_control DONE (freedreno, i965, nv50, softpipe, swr, virgl, lima)
GL_ARB_clip_control DONE (freedreno, i965, nv50, softpipe, swr, virgl)
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost)
GL_ARB_cull_distance DONE (freedreno/a6xx, i965, nv50, softpipe, swr, virgl)
GL_ARB_derivative_control DONE (i965, nv50, softpipe, virgl)
@@ -235,10 +235,12 @@ GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
GL_ARB_shader_draw_parameters DONE (i965, llvmpipe, nvc0)
GL_ARB_shader_group_vote DONE (i965, nvc0, llvmpipe)
GL_ARB_spirv_extensions DONE (i965/gen7+, llvmpipe)
GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe, llvmpipe, d3d12, virgl)
GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe (*), llvmpipe (*), d3d12, virgl)
GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl)
GL_KHR_no_error DONE (all drivers)
(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
These are the extensions cherry-picked to make GLES 3.1
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost
@@ -268,45 +270,45 @@ GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, s
glGetBooleani_v - restrict to GLES enums
gl_HelperInvocation support DONE (i965, r600, panfrost)
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe, zink
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe
GL_EXT_color_buffer_float DONE (all drivers)
GL_KHR_blend_equation_advanced DONE (freedreno/a6xx, i965, nvc0, panfrost)
GL_KHR_debug DONE (all drivers)
GL_KHR_robustness DONE (freedreno, i965, nvc0, r600)
GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, swr, lima)
GL_KHR_robustness DONE (freedreno, i965, nvc0, r600, zink)
GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, swr, zink, lima)
GL_OES_copy_image DONE (all drivers)
GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
GL_OES_draw_elements_base_vertex DONE (all drivers)
GL_OES_geometry_shader DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d)
GL_OES_geometry_shader DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d, zink)
GL_OES_gpu_shader5 DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
GL_OES_primitive_bounding_box DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d)
GL_OES_sample_shading DONE (freedreno/a6xx, i965, nvc0, r600, panfrost)
GL_OES_sample_variables DONE (freedreno/a6xx, i965, nvc0, r600, panfrost/bifrost)
GL_OES_primitive_bounding_box DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d, zink)
GL_OES_sample_shading DONE (freedreno/a6xx, i965, nvc0, r600, zink, panfrost, zink)
GL_OES_sample_variables DONE (freedreno/a6xx, i965, nvc0, r600, zink, panfrost/bifrost, zink)
GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, i965, nvc0, r600)
GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, i965, nvc0, r600, zink)
GL_OES_tessellation_shader DONE (freedreno/a6xx, all drivers that support GL_ARB_tessellation_shader)
GL_OES_texture_border_clamp DONE (all drivers)
GL_OES_texture_buffer DONE (freedreno, i965, nvc0, r600, softpipe, panfrost)
GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe)
GL_OES_texture_buffer DONE (freedreno, i965, nvc0, r600, softpipe, panfrost, zink)
GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe, zink)
GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
GL_ARB_bindless_texture DONE (nvc0, radeonsi, zink)
GL_ARB_bindless_texture DONE (nvc0, radeonsi)
GL_ARB_cl_event not started
GL_ARB_compute_variable_group_size DONE (i965/gen7+, nvc0, radeonsi, zink)
GL_ARB_ES3_2_compatibility DONE (i965/gen8+, radeonsi, virgl, zink)
GL_ARB_fragment_shader_interlock DONE (i965, zink)
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe, zink)
GL_ARB_parallel_shader_compile DONE (freedreno, iris, radeonsi)
GL_ARB_parallel_shader_compile DONE (all drivers)
GL_ARB_post_depth_coverage DONE (i965, nvc0, radeonsi, llvmpipe, zink)
GL_ARB_robustness_isolation not started
GL_ARB_sample_locations DONE (nvc0, zink)
GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, r600, radeonsi, softpipe, swr, virgl)
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi, zink)
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl, zink)
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl, panfrost, zink)
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi, zink)
@@ -316,12 +318,12 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_ARB_sparse_texture2 not started
GL_ARB_sparse_texture_clamp not started
GL_ARB_texture_filter_minmax DONE (nvc0/gm200+, zink)
GL_EXT_color_buffer_half_float DONE (freedreno, i965, iris, llvmpipe, nv50, nvc0, radeonsi, zink)
GL_EXT_color_buffer_half_float DONE (gallium drivers supporting required formats)
GL_EXT_depth_bounds_test DONE (i965/gen12+, nv50, nvc0, radeonsi, softpipe, swr, zink)
GL_EXT_memory_object DONE (radeonsi, i965/gen7+, llvmpipe)
GL_EXT_memory_object_fd DONE (radeonsi, i965/gen7+, llvmpipe)
GL_EXT_memory_object DONE (radeonsi, i965/gen7+)
GL_EXT_memory_object_fd DONE (radeonsi, i965/gen7+)
GL_EXT_memory_object_win32 not started
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink)
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost)
GL_EXT_render_snorm DONE (i965, r600, radeonsi, softpipe, zink)
GL_EXT_semaphore DONE (radeonsi, i965/gen7+)
GL_EXT_semaphore_fd DONE (radeonsi, i965/gen7+)
@@ -331,7 +333,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_EXT_texture_norm16 DONE (freedreno, i965, r600, radeonsi, nvc0i, softpipe, zink)
GL_EXT_texture_sRGB_R8 DONE (all drivers that support GLES 3.0+)
GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+, panfrost)
GL_KHR_texture_compression_astc_hdr DONE (core only)
GL_KHR_texture_compression_astc_hdr DONE (i965/bxt, panfrost)
GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+, r600, radeonsi, panfrost, softpipe, swr, zink, lima)
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
GL_OES_EGL_image DONE (all drivers)
@@ -436,7 +438,7 @@ Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
VK_KHR_maintenance1 DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_maintenance2 DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_maintenance3 DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_multiview DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_multiview DONE (anv, lvp, radv, tu, vn)
VK_KHR_relaxed_block_layout DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_sampler_ycbcr_conversion DONE (anv, radv, tu, vn)
VK_KHR_shader_draw_parameters DONE (anv, lvp, radv, tu, vn)
@@ -448,20 +450,20 @@ Vulkan 1.2 -- all DONE: anv, vn
VK_KHR_8bit_storage DONE (anv/gen8+, lvp, radv, vn)
VK_KHR_buffer_device_address DONE (anv/gen8+, lvp, radv, vn)
VK_KHR_create_renderpass2 DONE (anv, lvp, radv, tu, vn)
VK_KHR_depth_stencil_resolve DONE (anv, lvp, radv, tu, vn)
VK_KHR_depth_stencil_resolve DONE (anv, radv, tu, vn)
VK_KHR_draw_indirect_count DONE (anv, lvp, radv, tu, vn)
VK_KHR_driver_properties DONE (anv, lvp, radv, vn)
VK_KHR_image_format_list DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, tu, vn)
VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, vn)
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_separate_depth_stencil_layouts DONE (anv, lvp, radv, vn)
VK_KHR_shader_atomic_int64 DONE (anv/gen9+, lvp, radv, vn)
VK_KHR_shader_float16_int8 DONE (anv/gen8+, lvp, radv, tu, vn)
VK_KHR_shader_float_controls DONE (anv/gen8+, lvp, radv, tu, vn)
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, lvp, radv, tu, vn)
VK_KHR_spirv_1_4 DONE (anv, lvp, radv, tu, vn)
VK_KHR_timeline_semaphore DONE (anv, lvp, radv, tu, vn)
VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_shader_float16_int8 DONE (anv/gen8+, radv, tu, vn)
VK_KHR_shader_float_controls DONE (anv/gen8+, radv, tu, vn)
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, radv, vn)
VK_KHR_spirv_1_4 DONE (anv, radv, tu, vn)
VK_KHR_timeline_semaphore DONE (anv, radv, tu, vn)
VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, v3dv, vn)
VK_KHR_vulkan_memory_model DONE (anv, radv, tu, vn)
VK_EXT_descriptor_indexing DONE (anv/gen9+, radv, tu, vn)
VK_EXT_host_query_reset DONE (anv, lvp, radv, tu, vn)
@@ -477,29 +479,28 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_deferred_host_operations DONE (anv, radv)
VK_KHR_display DONE (anv, lvp, radv, tu, v3dv)
VK_KHR_display_swapchain not started
VK_KHR_external_fence_fd DONE (anv, radv, tu, v3dv, vn)
VK_KHR_external_fence_fd DONE (anv, radv, tu, v3dv)
VK_KHR_external_fence_win32 not started
VK_KHR_external_memory_fd DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_external_memory_fd DONE (anv, radv, tu, v3dv)
VK_KHR_external_memory_win32 not started
VK_KHR_external_semaphore_fd DONE (anv, radv, tu, v3dv, vn)
VK_KHR_external_semaphore_fd DONE (anv, radv, tu, v3dv)
VK_KHR_external_semaphore_win32 not started
VK_KHR_fragment_shading_rate not started
VK_KHR_get_display_properties2 DONE (anv, lvp, radv, tu, v3dv)
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_incremental_present DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_incremental_present DONE (anv, lvp, radv, tu, v3dv)
VK_KHR_performance_query DONE (anv/gen8+, tu)
VK_KHR_pipeline_executable_properties DONE (anv, radv, tu)
VK_KHR_push_descriptor DONE (anv, lvp, radv, tu)
VK_KHR_shader_clock DONE (anv, radv)
VK_KHR_shader_integer_dot_product DONE (radv)
VK_KHR_shader_non_semantic_info DONE (anv, radv)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, radv)
VK_KHR_shader_terminate_invocation DONE (anv, radv, tu)
VK_KHR_shared_presentable_image not started
VK_KHR_surface DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_surface_protected_capabilities DONE (anv, lvp, radv, v3dv, vn)
VK_KHR_swapchain DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_swapchain_mutable_format DONE (anv, radv, vn)
VK_KHR_surface_protected_capabilities DONE (anv, lvp, radv, vn)
VK_KHR_swapchain DONE (anv, lvp, radv, tu, v3dv)
VK_KHR_swapchain_mutable_format DONE (anv, radv)
VK_KHR_wayland_surface DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_workgroup_memory_explicit_layout DONE (anv, radv)
VK_KHR_win32_keyed_mutex not started
@@ -507,44 +508,43 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_xcb_surface DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_xlib_surface DONE (anv, lvp, radv, tu, v3dv, vn)
VK_KHR_zero_initialize_workgroup_memory DONE (anv, radv)
VK_EXT_4444_formats DONE (anv, lvp, radv, tu)
VK_EXT_4444_formats DONE (anv, radv, tu)
VK_EXT_calibrated_timestamps DONE (anv, lvp, radv)
VK_EXT_color_write_enable DONE (anv, lvp, v3dv)
VK_EXT_color_write_enable DONE (anv)
VK_EXT_conditional_rendering DONE (anv, lvp, radv, tu)
VK_EXT_conservative_rasterization DONE (anv/gen9+, radv)
VK_EXT_custom_border_color DONE (anv, lvp, radv, tu, v3dv)
VK_EXT_custom_border_color DONE (anv, lvp, radv, tu)
VK_EXT_debug_marker DONE (radv)
VK_EXT_depth_clip_enable DONE (anv, lvp, radv, tu)
VK_EXT_depth_clip_enable DONE (anv, radv, tu)
VK_EXT_depth_range_unrestricted DONE (radv)
VK_EXT_discard_rectangles DONE (radv)
VK_EXT_display_control DONE (anv, radv, tu)
VK_EXT_extended_dynamic_state DONE (anv, lvp, radv, tu)
VK_EXT_extended_dynamic_state2 DONE (anv, lvp, radv)
VK_EXT_external_memory_dma_buf DONE (anv, radv, tu, v3dv, vn)
VK_EXT_external_memory_host DONE (anv, lvp, radv)
VK_EXT_external_memory_dma_buf DONE (anv, radv, tu, v3dv)
VK_EXT_external_memory_host DONE (anv, radv)
VK_EXT_filter_cubic DONE (tu/a650)
VK_EXT_fragment_shader_interlock DONE (anv/gen9+)
VK_EXT_global_priority DONE (anv, radv)
VK_EXT_image_drm_format_modifier DONE (anv, radv/gfx9+, tu, vn)
VK_EXT_image_drm_format_modifier DONE (anv, radv/gfx9+, tu)
VK_EXT_image_robustness DONE (anv, radv)
VK_EXT_index_type_uint8 DONE (anv, lvp, radv/gfx8+, v3dv, tu)
VK_EXT_inline_uniform_block DONE (anv, radv)
VK_EXT_line_rasterization DONE (anv, lvp, radv, tu)
VK_EXT_line_rasterization DONE (anv, lvp, radv)
VK_EXT_memory_budget DONE (anv, radv, tu)
VK_EXT_memory_priority DONE (radv)
VK_EXT_multi_draw DONE (anv, lvp, radv)
VK_EXT_pci_bus_info DONE (anv, radv)
VK_EXT_physical_device_drm DONE (anv, radv, v3dv)
VK_EXT_pipeline_creation_cache_control DONE (anv, radv, v3dv)
VK_EXT_pipeline_creation_feedback DONE (anv, radv, v3dv)
VK_EXT_physical_device_drm DONE (anv, radv)
VK_EXT_pipeline_creation_cache_control DONE (anv, radv)
VK_EXT_pipeline_creation_feedback DONE (anv, radv)
VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv)
VK_EXT_private_data DONE (anv, lvp, radv, tu, v3dv)
VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu, v3dv)
VK_EXT_queue_family_foreign DONE (anv, radv, vn)
VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu)
VK_EXT_queue_family_foreign DONE (anv, radv)
VK_EXT_robustness2 DONE (anv, radv, tu)
VK_EXT_sample_locations DONE (anv, radv/gfx9-, tu/a650)
VK_EXT_shader_atomic_float DONE (anv, radv)
VK_EXT_shader_atomic_float2 DONE (anv/gen9+, radv)
VK_EXT_shader_demote_to_helper_invocation DONE (anv, radv, tu)
VK_EXT_shader_image_atomic_int64 DONE (radv)
VK_EXT_shader_stencil_export DONE (anv/gen9+, lvp, radv, tu)
@@ -553,18 +553,17 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_subgroup_size_control DONE (anv, radv)
VK_EXT_texel_buffer_alignment DONE (anv, radv)
VK_EXT_transform_feedback DONE (anv, lvp, radv, tu, vn)
VK_EXT_vertex_attribute_divisor DONE (anv, radv, lvp, tu, v3dv)
VK_EXT_vertex_input_dynamic_state DONE (lvp, radv)
VK_EXT_vertex_attribute_divisor DONE (anv, radv, lvp, tu)
VK_EXT_vertex_input_dynamic_state DONE (lvp)
VK_EXT_ycbcr_image_arrays DONE (anv, radv)
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, radv, vn)
VK_ANDROID_native_buffer DONE (anv, radv, vn)
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, radv)
VK_ANDROID_native_buffer DONE (anv, radv)
VK_GOOGLE_decorate_string DONE (anv, lvp, radv)
VK_GOOGLE_hlsl_functionality1 DONE (anv, lvp, radv)
VK_GOOGLE_user_type DONE (anv, radv)
VK_IMG_filter_cubic DONE (tu/a650)
VK_NV_compute_shader_derivatives DONE (anv, radv)
VK_EXT_acquire_drm_display DONE (radv, anv)
VK_VALVE_mutable_descriptor_type DONE (radv, tu)
OpenCL 1.0 -- all DONE:

View File

@@ -118,8 +118,6 @@ objects. They all follow simple, one-method binding calls, e.g.
levels. This corresponds to GL's ``PATCH_DEFAULT_OUTER_LEVEL``.
* ``default_inner_level`` is the default value for the inner tessellation
levels. This corresponds to GL's ``PATCH_DEFAULT_INNER_LEVEL``.
* ``set_patch_vertices`` sets the number of vertices per input patch
for tessellation.
* ``set_debug_callback`` sets the callback to be used for reporting
various debug messages, eventually reported via KHR_debug and

View File

@@ -326,15 +326,10 @@ clip_halfz
When true clip space in the z axis goes from [0..1] (D3D). When false
[-1, 1] (GL)
depth_clip_near
When false, the near depth clipping plane of the view volume is disabled.
depth_clip_far
When false, the far depth clipping plane of the view volume is disabled.
depth_clamp
Whether the depth value will be clamped to the interval defined by the
near and far depth range at the per-pixel level, after polygon offset has
been applied and before depth testing. Note that a clamp to [0,1] according
to GL rules should always happen even if this is disabled.
depth_clip
When false, the near and far depth clipping planes of the view volume are
disabled and the depth value will be clamped at the per-pixel level, after
polygon offset has been applied and before depth testing.
clip_plane_enable
For each k in [0, PIPE_MAX_CLIP_PLANES), if bit k of this field is set,

View File

@@ -80,9 +80,6 @@ The integer capabilities:
disabling depth clipping (through pipe_rasterizer_state) separately for
the near and far plane. If not, depth_clip_near and depth_clip_far will be
equal.
``PIPE_CAP_DEPTH_CLAMP_ENABLE``: Whether the driver is capable of
enabling depth clamping (through pipe_rasterizer_state) separately from depth
clipping. If not, depth_clamp will be the inverse of depth_clip_far.
* ``PIPE_CAP_SHADER_STENCIL_EXPORT``: Whether a stencil reference value can be
written from a fragment shader.
* ``PIPE_CAP_TGSI_INSTANCEID``: Whether TGSI_SEMANTIC_INSTANCEID is supported
@@ -621,8 +618,6 @@ The integer capabilities:
* ``PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART``: Driver requests all draws using a non-fixed restart index to be rewritten to use a fixed restart index.
* ``PIPE_CAP_SUPPORTED_PRIM_MODES``: A bitmask of the ``pipe_prim_type`` enum values that the driver can natively support.
* ``PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART``: A bitmask of the ``pipe_prim_type`` enum values that the driver can natively support for primitive restart. Only useful if ``PIPE_CAP_PRIMITIVE_RESTART`` is also exported.
* ``PIPE_CAP_PREFER_BACK_BUFFER_REUSE``: Only applies to DRI_PRIME. If 1, the driver prefers that DRI3 tries to use the same back buffer each frame. If 0, this means DRI3 will at least use 2 back buffers and ping-pong between them to allow the tiled->linear copy to run in parallel.
* ``PIPE_CAP_DRAW_VERTEX_STATE``: Driver supports `pipe_screen::create_vertex_state/vertex_state_destroy` and `pipe_context::draw_vertex_state`. Only used by display lists and designed to serve vbo_save.
.. _pipe_capf:

View File

@@ -3561,6 +3561,11 @@ interpolation should be done at, one of ``TGSI_INTERPOLATE_LOC_*``. Note that
when per-sample shading is enabled, the implementation may choose to
interpolate at the sample irrespective of the Location field.
The CylindricalWrap bitfield specifies which register components
should be subject to cylindrical wrapping when interpolating by the
rasteriser. If TGSI_CYLINDRICAL_WRAP_X is set to 1, the X component
should be interpolated according to cylindrical wrapping rules.
Declaration Sampler View
^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -246,36 +246,6 @@ ISL, we represent a W-tile as a tiling with a logical dimension of 64el x 64el
but a physical size of 128B x 32rows. This cleanly takes care of the pitch
issue above and seems to nicely model the hardware.
Tile4
-----
The tile4 format, introduced on Xe-HP, is somewhat similar to Y but with more
internal shuffling. Each tile4 tile is an 8x8 grid of cache lines arranged
as follows:
===== ===== ===== ===== ===== ===== ===== =====
===== ===== ===== ===== ===== ===== ===== =====
0x000 0x040 0x080 0x0a0 0x200 0x240 0x280 0x2a0
0x100 0x140 0x180 0x1a0 0x300 0x340 0x380 0x3a0
0x400 0x440 0x480 0x4a0 0x600 0x640 0x680 0x6a0
0x500 0x540 0x580 0x5a0 0x700 0x740 0x780 0x7a0
0x800 0x840 0x880 0x8a0 0xa00 0xa40 0xa80 0xaa0
0x900 0x940 0x980 0x9a0 0xb00 0xb40 0xb80 0xba0
0xc00 0xc40 0xc80 0xca0 0xe00 0xe40 0xe80 0xea0
0xd00 0xd40 0xd80 0xda0 0xf00 0xf40 0xf80 0xfa0
===== ===== ===== ===== ===== ===== ===== =====
Each 64B cache line within the tile is laid out the same way as for a Y-tile,
as 4 rows of 16B each:
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f
0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x3e 0x3f
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
Tiling as a bit pattern
-----------------------
@@ -311,7 +281,6 @@ the tile are given by the table below:
:cpp:enumerator:`isl_tiling::ISL_TILING_X` :math:`v_2` :math:`v_1` :math:`v_0` :math:`u_8` :math:`u_7` :math:`u_6` :math:`u_5` :math:`u_4` :math:`u_3` :math:`u_2` :math:`u_1` :math:`u_0`
:cpp:enumerator:`isl_tiling::ISL_TILING_Y0` :math:`u_6` :math:`u_5` :math:`u_4` :math:`v_4` :math:`v_3` :math:`v_2` :math:`v_1` :math:`v_0` :math:`u_3` :math:`u_2` :math:`u_1` :math:`u_0`
:cpp:enumerator:`isl_tiling::ISL_TILING_W` :math:`u_5` :math:`u_4` :math:`u_3` :math:`v_5` :math:`v_4` :math:`v_3` :math:`v_2` :math:`u_2` :math:`v_1` :math:`u_1` :math:`v_0` :math:`u_0`
:cpp:enumerator:`isl_tiling::ISL_TILING_4` :math:`v_4` :math:`v_3` :math:`u_6` :math:`v_2` :math:`u_5` :math:`u_4` :math:`v_1` :math:`v_0` :math:`u_3` :math:`u_2` :math:`u_1` :math:`u_0`
=========================================== =========== =========== =========== =========== =========== =========== =========== =========== =========== =========== =========== ===========
Constructing the mapping this way makes a lot of sense when you think about

View File

@@ -11,4 +11,3 @@ stack.
:maxdepth: 2
alu
tex

View File

@@ -1,67 +0,0 @@
NIR Texture Instructions
========================
Even though texture instructions *could* be supported as intrinsics, the vast
number of combinations mean that doing so is practically impossible. Instead,
NIR has a dedicated texture instruction. There are several texture operations:
.. doxygenenum:: nir_texop
As with other instruction types, there is still an array of sources, except
that each source also has a *type* associated with it. There are various
source types, each corresponding to a piece of information that the different
texture operations require.
.. doxygenenum:: nir_tex_src_type
Of particular interest are the texture/sampler deref/index/handle source types.
First, note that textures and samplers are specified separately in NIR. While
not required for OpenGL, this is required for Vulkan and OpenCL. Some
OpenGL [ES] drivers have to deal with hardware that does not have separate
samplers and textures. While not recommended, an OpenGL-only driver may assume
that the texture and sampler derefs will always point to the same resource, if
needed. Note that this pretty well paints your compiler into a corner and
makes any future port to Vulkan or OpenCL harder, so such assumptions should
really only be made if targeting OpenGL ES 2.0 era hardware.
Also, like a lot of other resources, there are multiple ways to represent a
texture in NIR. It can be referenced by a variable dereference, an index, or a
bindless handle. When using an index or a bindless handle, the texture type
information is generally not available. To handle this, various information
from the type is redundantly stored in the :cpp:struct:`nir_tex_instr` itself.
.. doxygenstruct:: nir_tex_instr
:members:
.. doxygenstruct:: nir_tex_src
:members:
Texture instruction helpers
---------------------------
There are a number of helper functions for working with NIR texture
instructions. They are documented here in no particular order.
.. doxygenfunction:: nir_tex_instr_create
.. doxygenfunction:: nir_tex_instr_need_sampler
.. doxygenfunction:: nir_tex_instr_result_size
.. doxygenfunction:: nir_tex_instr_dest_size
.. doxygenfunction:: nir_tex_instr_is_query
.. doxygenfunction:: nir_tex_instr_has_implicit_derivative
.. doxygenfunction:: nir_tex_instr_src_type
.. doxygenfunction:: nir_tex_instr_src_size
.. doxygenfunction:: nir_tex_instr_src_index
.. doxygenfunction:: nir_tex_instr_add_src
.. doxygenfunction:: nir_tex_instr_remove_src
Texture instruction lowering
----------------------------
Because most hardware only supports some subset of all possible GLSL/SPIR-V
texture operations, NIR provides a quite powerful lowering pass which is able
to implement more complex texture operations in terms of simpler ones.
.. doxygenfunction:: nir_lower_tex
.. doxygenstruct:: nir_lower_tex_options
:members:
.. doxygenenum:: nir_lower_tex_packing

View File

@@ -31,17 +31,8 @@ The exact supported features vary per driver:
* - Driver
- PPS Counters
- Render Stages
* - Freedreno
- ``gpu.counters.msm``
- ``gpu.renderstages.msm``
* - Turnip
- ``gpu.counters.msm``
-
* - Intel
- ``gpu.counters.i915``
-
* - Panfrost
- ``gpu.counters.panfrost``
- gpu.counters.panfrost
-
Run
@@ -85,35 +76,6 @@ Driver Specifics
Below is driver specific information/instructions for the PPS producer.
Freedreno / Turnip
^^^^^^^^^^^^^^^^^^
The Freedreno PPS driver needs root access to read system-wide
performance counters, so you can simply run it with sudo:
.. code-block:: console
sudo ./build/src/tool/pps/pps-producer
Intel
^^^^^
The Intel PPS driver needs root access to read system-wide
`RenderBasic <https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/reference/gpu-metrics-reference.html>`__
performance counters, so you can simply run it with sudo:
.. code-block:: console
sudo ./build/src/tool/pps/pps-producer
Another option to enable access wide data without root permissions would be running the following:
.. code-block:: console
sudo sysctl dev.i915.perf_stream_paranoid=0
Alternatively using the ``CAP_PERFMON`` permission on the binary should work too.
Panfrost
^^^^^^^^

View File

@@ -1,9 +1,9 @@
21.2,2021-10-13,21.2.4,Dylan Baker,
,2021-10-27,21.2.5,Dylan Baker,
,2021-11-10,21.2.6,Dylan Baker,
,2021-11-24,21.2.7,Dylan Baker,
,2021-12-08,21.2.8,Dylan Baker,Last planned 21.2.x release.
21.3,2021-10-13,21.3.0-rc1,Eric Engestrom,
,2021-10-20,21.3.0-rc2,Eric Engestrom,
,2021-10-27,21.3.0-rc3,Eric Engestrom,
,2021-11-03,21.3.0-rc4,Eric Engestrom,
21.0,2021-05-05,21.0.4,Dylan Baker,This is the last planned release of the 21.0.x series.
21.1,2021-07-14,21.1.5,Eric Engestrom,
21.1,2021-07-28,21.1.6,Eric Engestrom,
21.1,2021-08-11,21.1.7,Eric Engestrom,
21.1,2021-08-25,21.1.8,Eric Engestrom,
21.2,2021-07-14,21.2.0-rc1,Dylan Baker
,2021-07-21,21.2.0-rc2,Dylan Baker
,2021-07-28,21.2.0-rc3,Dylan Baker
,2021-08-04,21.2.0-rc4,Dylan Baker,Or 21.2.0 final.
1 21.2 21.0,2021-05-05,21.0.4,Dylan Baker,This is the last planned release of the 21.0.x series. 2021-10-13 21.2.4 Dylan Baker
2 21.1,2021-07-14,21.1.5,Eric Engestrom, 2021-10-27 21.2.5 Dylan Baker
3 21.1,2021-07-28,21.1.6,Eric Engestrom, 2021-11-10 21.2.6 Dylan Baker
4 21.1,2021-08-11,21.1.7,Eric Engestrom, 2021-11-24 21.2.7 Dylan Baker
5 21.1,2021-08-25,21.1.8,Eric Engestrom, 2021-12-08 21.2.8 Dylan Baker Last planned 21.2.x release.
6 21.3 21.2,2021-07-14,21.2.0-rc1,Dylan Baker 2021-10-13 21.3.0-rc1 Eric Engestrom
7 ,2021-07-21,21.2.0-rc2,Dylan Baker 2021-10-20 21.3.0-rc2 Eric Engestrom
8 ,2021-07-28,21.2.0-rc3,Dylan Baker 2021-10-27 21.3.0-rc3 Eric Engestrom
9 ,2021-08-04,21.2.0-rc4,Dylan Baker,Or 21.2.0 final. 2021-11-03 21.3.0-rc4 Eric Engestrom

View File

@@ -3,13 +3,6 @@ Release Notes
The release notes summarize what's new or changed in each Mesa release.
- :doc:`21.2.3 release notes <relnotes/21.2.3>`
- :doc:`21.2.2 release notes <relnotes/21.2.2>`
- :doc:`21.1.8 release notes <relnotes/21.1.8>`
- :doc:`21.1.7 release notes <relnotes/21.1.7>`
- :doc:`21.2.0 release notes <relnotes/21.2.0>`
- :doc:`21.1.6 release notes <relnotes/21.1.6>`
- :doc:`21.1.5 release notes <relnotes/21.1.5>`
- :doc:`21.1.4 release notes <relnotes/21.1.4>`
- :doc:`21.1.3 release notes <relnotes/21.1.3>`
- :doc:`21.1.2 release notes <relnotes/21.1.2>`
@@ -345,13 +338,6 @@ release notes, or in the `old docs`_.
:maxdepth: 1
:hidden:
relnotes/21.2.3
relnotes/21.2.2
relnotes/21.1.8
relnotes/21.1.7
relnotes/21.2.0
relnotes/21.1.6
relnotes/21.1.5
relnotes/21.1.4
relnotes/21.1.3
relnotes/21.1.2

View File

@@ -2,8 +2,6 @@ Mesa 21.0.3 Release Notes / 2021-04-21
======================================
Mesa 21.0.3 is a bug fix release which fixes bugs found since the 21.0.2 release.
This is the last release of the 21.0 series, please migrate to 21.1 as soon as
possible.
Mesa 21.0.3 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /

View File

@@ -1,143 +0,0 @@
Mesa 21.1.5 Release Notes / 2021-07-14
======================================
Mesa 21.1.5 is a bug fix release which fixes bugs found since the 21.1.4 release.
Mesa 21.1.5 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.1.5 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
022c7293074aeeced2278c872db4fa693147c70f8595b076cf3f1ef81520766d mesa-21.1.5.tar.xz
New features
------------
- None
Bug fixes
---------
- [build error] macros.h:88:26: error: size of unnamed array is negative
- Game Issue: Nuclear Throne crashes in RadeonSI
- Crash in glLinkProgram while trying to craft the link error
- Shader compilation memory leaks
- Wolfenstein II: The New Colossus - Screen goes black in some cases
- SpaceEngine in Steam Proton cannot start with Mesa >=20.3
- [bisected] KDE plasma menu text renders like stretched strangely [amdgpu]
- Luna Sky Crashes on Launch
- Mesa crashes on undefined texture behaviour
- Mesa crashes on undefined texture behaviour
- cache_test uses uninitialized stack memory
Changes
-------
Alyssa Rosenzweig (1):
- nir: Fix constant folding for irhadd/urhadd
Bas Nieuwenhuizen (1):
- ac/surface: Handle non-retiled displayable DCC correctly for modifiers.
Connor Abbott (1):
- ir3: Fix infinite loop in scheduler when splitting
Danylo Piliaiev (1):
- glsl: Prohibit implicit conversion of mem parameter in atomicOP functions
Dave Airlie (1):
- draw: fix tessellation output vertex size calculation
Eric Engestrom (4):
- .pick_status.json: Update to e4f762ac346f31fc1fd201aecdc375348be5075f
- zink: mark a bunch of zink-piglit-quick_gl tests as flakes
- .pick_status.json: Update to c704bb630d21e0a30500e9d8f42493ede3cc55ae
- .pick_status.json: Mark e5d158881b3e12270521d7081b4bba0ac2108d2e as denominated
Heinrich Fink (1):
- softpipe: add missing sentinel to debug option array
Jason Ekstrand (1):
- iris: Don't leak the surface if uncompressed re-interp fails
Lionel Landwerlin (1):
- intel/perf: use the right popcount for 64bits
Marek Olšák (2):
- ac/surface/tests: fix the ARM build
- radeonsi,radv: fix a late alloc deadlock with <= 6 CUs per SA
Michel Dänzer (3):
- Convert most remaining free-form fall-through comments to FALLTHROUGH
- osmesa: Replace default case FALLTHROUGH annotation by following return
- Fix up leftover "state_trackers" references to "frontends"
Pierre-Eric Pelloux-Prayer (4):
- radeonsi: fix fb_too_small condition
- radeonsi/gfx7: always sync pfp/me
- ac/surface: don't print stencil info if tex has no stencil
- radeonsi/driconf: add workaround for SpaceEngine
Qiang Yu (1):
- st/mesa: fix size miss match for some check
Rob Clark (2):
- freedreno: Consolidate needs_flush and clearing last_fence
- freedreno/a6xx: Fix framebuffer_barrier crash
Samuel Pitoiset (2):
- radv: disable DCC for DOOM 2016 and Wolfenstein II
- aco: fix shared_atomic_comp_swap if the second source isn't a VGPR
Thomas H.P. Andersen (3):
- nir: return progress from nir_lower_packing
- nir/ifind_msb_rev: fix input check
- broadcom/compiler: fix add vs. mul
Timothy Arceri (7):
- util/tests: initialise key in cache_test
- mesa: don't crash on incorrect texture use
- i965: don't crash on incorrect texture use
- util/driconf: add new ignore_write_to_readonly_var workaround
- util: add some workarounds for the game Luna Sky
- glsl: force_glsl_version to shaders with no defined version
- util/radeonsi: add radeonsi workaround for Nuclear Throne
Vinson Lee (1):
- st/xa: Mark default xa_get_pipe_format case unreachable.
Yevhenii Kolesnikov (1):
- intel: fix leaking memory on shader creation

View File

@@ -1,154 +0,0 @@
Mesa 21.1.6 Release Notes / 2021-07-28
======================================
Mesa 21.1.6 is a bug fix release which fixes bugs found since the 21.1.5 release.
Mesa 21.1.6 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.1.6 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
b1cb0122f911dfa9fe1f209a7061378c61a1448a280e711511ca72dad9999e37 mesa-21.1.6.tar.xz
New features
------------
- None
Bug fixes
---------
- [RADV] FSR in Resident Evil: Village looks very pixelated on Polaris
- Crash in update_buffers after closing KDE "splash screen" downloader
- Crash in update_buffers after closing KDE "splash screen" downloader
- radeonsi: persistent, read-only buffer maps are slow to read
- substance painter flickering with jagged texture and masks shown black
- radv: FP16 mode in FidelityFX FSR doesn't look right
- [RADV] Blocky corruption in Scarlet Nexus and vkd3d-proton 2.4
- Radeon RX580 and 5700 XT: Reloading ARB assembly shaders causes very glitchy rendering
Changes
-------
Alyssa Rosenzweig (1):
- targets/graw-xlib: Add missing dep_x11
Chia-I Wu (2):
- egl/surfaceless: try kms_swrast before swrast
- meson: allow egl_native_platform to be specified
Connor Abbott (1):
- freedreno/computerator: Fix local_size typo
Daniel Schürmann (1):
- aco/optimizer: ensure to not erase high bits when propagating packed constants
Daniel Stone (2):
- egl/wayland: Error on invalid native window
- egl/wayland: Allow EGLSurface to outlive wl_egl_window
Dave Airlie (2):
- softpipe/aniso: move DDQ calculation to after scaling.
- llvmpipe: add support for time elapsed queries.
Eric Engestrom (4):
- .pick_status.json: Mark a9c9a9938d6d2ead6f08ccf5256c95801fbc864f as backported
- .pick_status.json: Update to 376fb4f55f080929df8ca5a2a975fc88a00eec06
- .pick_status.json: Update to 1d6c790f9f6c373e667de955822b1048c7073ba3
- .pick_status.json: Update to 73262d4bd4a4637a332264a165c62ce3209d03fb
Erik Faye-Lund (3):
- zink: remove duplicate format-mapping on little-endian
- vulkan: do not map zero-sized region of memory
- vulkan: allocate host-visible memory for swapchain images
Ian Romanick (1):
- nir/gcm: Clear out pass_flags before starting
Jason Ekstrand (2):
- iris: Re-emit MEDIA_VFE_STATE for variable group size shaders
- anv: Handle errors properly in anv_i915_query
Jose Maria Casanova Crespo (1):
- v3d/driconf: Expose non-MSAA texture limits for mutter and gnome-shell
Joshua Ashton (1):
- lavapipe: Use common Vulkan format helpers
Juan A. Suarez Romero (1):
- broadcom/compiler: emit TMU flush before a jump
Karol Herbst (1):
- nv50/ir/nir: fix smem size for GL
Marek Olšák (2):
- radeonsi: don't expose no-attachment MSAA 16x on all 1 RB chips due to issues
- st/mesa: always use PIPE_USAGE_STAGING for GL_MAP_READ_BIT usage
Mauro Rossi (1):
- egl/android: include "util/compiler.h" for FALLTHROUGH macro
Mike Blumenkrantz (1):
- util/foz: stop crashing on destroy if prepare hasn't been called
Olivier Fourdan (1):
- radeonsi: Check aux_context on si_destroy_screen()
Pierre-Eric Pelloux-Prayer (2):
- mesa: clear shader_info::is_lowered in prog_to_nir
- mesa: fix bindless uniform samplers update
Rhys Perry (1):
- aco: don't create v_madmk_f32/v_madak_f32 from v_fma_legacy_f16
Rob Clark (1):
- freedreno/ir3: Don't force RTNE if rounding mode is undefined
Samuel Pitoiset (1):
- radv: only init the TC-compat ZRANGE metadata for the depth aspect
Timothy Arceri (3):
- glsl: replace some C++ code with C
- util: add workaround for Full Bore
- glsl: relax rule on varying matching for shaders older than 4.20
Vasily Khoruzhick (1):
- lima: handle fp16 vertex formats

View File

@@ -1,186 +0,0 @@
Mesa 21.1.7 Release Notes / 2021-08-11
======================================
Mesa 21.1.7 is a bug fix release which fixes bugs found since the 21.1.6 release.
Mesa 21.1.7 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.1.7 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
e9e67c10654f2e4bf15b944bb048007a614292aa4792b1b7512eb700b7b3a7bb mesa-21.1.7.tar.xz
New features
------------
- None
Bug fixes
---------
- Miscompilation of a switch case
- [radeonsi][regression] CPU is being used ~10 times more than usual after c5478f9067f.
- dEQP-VK.wsi.android.swapchain.create#image_swapchain_create_info crash on Android R
- The image is distorted while use iGPU(Intel GPU) rendering and output via dGPU (AMD GPU)
- lima: regression in plbu scissors cmd
- Incorrect rendering
Changes
-------
Alyssa Rosenzweig (3):
- pan/bi: Restrict swizzles on same cycle temporaries
- nir/lower_mediump_io: Don't remap base unless needed
- nir/lower_mediump: Fix metadata in all passes
Bas Nieuwenhuizen (9):
- util/fossilize_db: Update parsed_offset correctly.
- util/fossilize_db: Reset file position to parsed_offset on cache_offset read failure.
- util/fossilize_db: Flush files after header write.
- util/fossilize_db: Be conservative about header length check for locking.
- util/fossilize_db: Only allocate entries after full read.
- util/fossilize_db: Use uint64_t for file size.
- util/fossilize_db: Unlock the cache file if the entry already exists.
- util/fossilize_db: Add extra flock mutex.
- radv: Allocate space for inline push constants.
Chia-I Wu (1):
- vulkan/wsi/x11: do not inherit last_present_mode
Connor Abbott (1):
- ir3: Preserve gl_ViewportIndex in the binning shader
Dave Airlie (3):
- teximage: return correct desktop GL error for compressedteximage
- intel/fs: restrict max push length on older GPUs to a smaller amount
- virgl: disable anisotropic filtering.
Dylan Baker (1):
- freedreno/ir3: Add build id to the disassembler test
Eric Engestrom (9):
- .pick_status.json: Update to 7055282231cdad23e7b23fb49a2f953a99797f8a
- .pick_status.json: Update to 2f06642b06c94f07f4bfe3df32b25659428c9144
- .pick_status.json: Mark 6ccf11ac2b951963407601b5b1109b45a972e48e as denominated
- .pick_status.json: Update to 2f06642b06c94f07f4bfe3df32b25659428c9144
- .pick_status.json: Update to 353e6323936b812884fa677c25bdba91554881b7
- .pick_status.json: Update to 4128acdee32eadfef1fb8c3c3ce2e512a267cdf4
- pick-ui: drop assert that optional argument is passed
- pick-ui: show nomination type in the UI
- pick-ui: show commit date
Erico Nunes (1):
- lima: avoid crash with negative viewport values
Hoe Hao Cheng (1):
- zink: make codegen compatible with python 3.5
Jesse Natalie (1):
- mesa/main: Check for fbo attachments when importing EGL images to textures
Joshua Watt (1):
- v3d, vc4: Fix dmabuf import for non-scanout buffers
Juan A. Suarez Romero (1):
- gallium/hud: initialize query
Karol Herbst (1):
- nv30: fix emulated vertex index buffers
Lepton Wu (1):
- gallium: Reset {d,r}Priv in dri_unbind_context
Lionel Landwerlin (3):
- loader/dri3: create linear buffer with scanout support
- anv: fix submission batching with perf queries
- anv: don't try to access Android swapchains
Lucas Stach (2):
- renderonly: don't complain when GPU import fails
- etnaviv: always try to create KMS side handles for imported resources
Marcin Ślusarz (1):
- glsl: evaluate switch expression once
Mike Blumenkrantz (1):
- zink: use array size in spirv bo length calculations
Philipp Zabel (1):
- etnaviv: fix gbm_bo_get_handle_for_plane for multiplanar images
Pierre Moreau (2):
- clover/spirv: Properly size 3-component vector args
- clover/nir: Set constant buffer pointer size to host
Pierre-Eric Pelloux-Prayer (3):
- gallium/va: don't use key=NULL in hash tables
- amd/registers: fix fields conflict detection
- radeonsi: don't create an infinite number of variants
Rhys Perry (1):
- nir/algebraic: fix imod by negative power-of-two
Samuel Pitoiset (1):
- radv: fix selecting the first active CU when profiling with SQTT
Simon Ser (5):
- etnaviv: fix renderonly check in etna_resource_alloc
- etnaviv: fail in get_handle(TYPE_KMS) without a scanout resource
- freedreno: fail in get_handle(TYPE_KMS) without a scanout resource
- panfrost: fail in get_handle(TYPE_KMS) without a scanout resource
- lima: fail in get_handle(TYPE_KMS) without a scanout resource
Thomas H.P. Andersen (1):
- nine: Fix assert in tx_src_param
Timothy Arceri (1):
- intel/compiler: make sure swizzle is applied to if condition
Yevhenii Kolesnikov (2):
- glsl: Add operator for .length() method on implicitly-sized arrays
- glsl: Properly handle .length() of an unsized array
Zhu Yuliang (1):
- gallium/vl: don't leak fd in vl_dri3_screen_create

View File

@@ -1,105 +0,0 @@
Mesa 21.1.8 Release Notes / 2021-09-08
======================================
Mesa 21.1.8 is a bug fix release which fixes bugs found since the 21.1.7 release.
Mesa 21.1.8 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.1.8 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
5cd32f5d089dca75300578a3d771a656eaed652090573a2655fe4e7022d56bfc mesa-21.1.8.tar.xz
New features
------------
- None
Bug fixes
---------
- llvmpipe doesn't compile a valid shader with an useless switch
- GetFragDataLocation(prog, "gl_FragColor") generates INVALID_OPERATION, but specs don't say it should
- Possible miscompilation of a comparison with unsigned zero
- dEQP-VK.wsi.android.swapchain.create#image_swapchain_create_info crash on Android R
Changes
-------
Alyssa Rosenzweig (1):
- drm-shim: Support kernels with >4k pages
Boris Brezillon (1):
- panfrost: Fix pan_blitter_emit_bifrost_blend()
Eric Engestrom (3):
- .pick_status.json: Update to 8bb9e9e76fa1f062c8da9536e9ee209b2dc268f7
- Revert "python: Explicitly add the 'L' suffix on Python 3"
- isl: drop left-over comment
Erik Faye-Lund (2):
- gallium/nir/tgsi: fixup indentation
- gallium/nir/tgsi: initialize file_max for inputs
Ilia Mirkin (1):
- mesa: don't return errors for gl_* GetFragData* queries
Jason Ekstrand (1):
- anv: Set CONTEXT_PARAM_RECOVERABLE to false
Lionel Landwerlin (1):
- anv/android: handle image bindings from gralloc buffers
Mao, Marc (1):
- iris: declare padding for iris_vue_prog_key
Marcin Ślusarz (2):
- nir/builder: invalidate metadata per function
- glsl/opt_algebraic: disable invalid optimization
Mike Blumenkrantz (1):
- nir/lower_vectorize_tess_levels: set num_components for vectorized loads
Roman Stratiienko (1):
- lima: Implement lima_resource_get_param() callback
Simon Ser (4):
- etnaviv: add stride, offset and modifier to resource_get_param
- panfrost: implement resource_get_param
- vc4: implement resource_get_param
- v3d: implement resource_get_param
Timothy Arceri (1):
- glsl: fix variable scope for instructions inside case statements
Vinson Lee (2):
- meson: Remove duplicate xvmc in build summary.
- nir: Initialize evaluate_cube_face_index_amd dst.x.

218
docs/relnotes/21.2.1.rst Normal file
View File

@@ -0,0 +1,218 @@
Mesa 21.2.1 Release Notes / 2021-08-19
======================================
Mesa 21.2.1 is a bug fix release which fixes bugs found since the 21.2.0 release.
Mesa 21.2.1 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.2.1 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
2c65e6710b419b67456a48beefd0be827b32db416772e0e363d5f7d54dc01787 mesa-21.2.1.tar.xz
New features
------------
- None
Bug fixes
---------
- Possible miscompilation of a comparison with unsigned zero
- dEQP-VK.wsi.android.swapchain.create#image_swapchain_create_info crash on Android R
- Nine Regression with util: Switch the non-block formats to unpacking rgba rows instead of rects.
- panfrost G31 Unreal Tournament - various glitches (apitrace)
- Miscompilation of a switch case
- [radeonsi][regression] CPU is being used ~10 times more than usual after c5478f9067f.
- dEQP-VK.wsi.android.swapchain.create#image_swapchain_create_info crash on Android R
Changes
-------
Alyssa Rosenzweig (5):
- nir/lower_mediump_io: Don't remap base unless needed
- nir/lower_mediump: Fix metadata in all passes
- drm-shim: Support kernels with >4k pages
- panfrost: Fix leak of render node fd
- panfrost: Rewrite the clear colour packing code
Axel Davy (1):
- util: Fix translate from block compressed to rgba
Bas Nieuwenhuizen (10):
- util/fossilize_db: Update parsed_offset correctly.
- util/fossilize_db: Reset file position to parsed_offset on cache_offset read failure.
- util/fossilize_db: Flush files after header write.
- util/fossilize_db: Be conservative about header length check for locking.
- util/fossilize_db: Only allocate entries after full read.
- util/fossilize_db: Use uint64_t for file size.
- util/fossilize_db: Unlock the cache file if the entry already exists.
- util/fossilize_db: Add extra flock mutex.
- radv: Allocate space for inline push constants.
- radv: Use correct signedness in misalign test.
Boris Brezillon (1):
- panfrost: Fix pan_blitter_emit_bifrost_blend()
Charmaine Lee (1):
- aux/draw: Check for preferred IR to take nir-to-tgsi path in draw module
Chia-I Wu (2):
- iris, crocus: add idep_genxml to per_hw target dependencies
- venus: free queues after vkDestroyDevice is emitted
Dave Airlie (7):
- virgl: disable anisotropic filtering.
- wl/shm: don't fetch formats if not requested.
- crocus/blt: add pitch/offset checks to fix blt corruption
- crocus: align staging resource pitch on gen4/5 to allow BLT usage.
- intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5
- crocus/blt: add pitch/offset checks to fix blt corruption
- crocus: align staging resource pitch on gen4/5 to allow BLT usage.
Dylan Baker (15):
- docs: Add sha256 sum for 21.2.0
- .pick_status.json: Update to 8918a809ced3551f822abb45d751d31b54ad67da
- .pick_status.json: Update to 6ccf11ac2b951963407601b5b1109b45a972e48e
- bin/gen_release_notes: Add basic tests for parsing issues
- bin/gen_release_notes: Don't consider issues for other projects
- bin/gen_release_notes: Fix commits with multiple Closes:
- .pick_status.json: Update to 0165fde82c41f94c5d6f432f9f444871405a7d49
- .pick_status.json: Update to 7ae3881a4bf989436b602b30b9a91602435e47a6
- .pick_status.json: Update to 0dd0a92b243487e83d8d96532873f319719248e5
- .pick_status.json: Update to 01b0935d315347cfd06bb5d8bb1a6b59913f94cc
- .pick_status.json: Update to 688d11e4e821ec3934abe571de9899390beceb54
- .pick_status.json: Update to 04bd2a12451160609b6f163e1a86437948a48fcd
- .pick_status.json: Update to 441e490f5a13d96255810f38260445437033be63
- .pick_status.json: Update to 726fdf3385428b52b773e9049ce6033d02c631c1
- .pick_status.json: Update to 35c3f5f08b7b11f3896412fb5778f127be329615
Eric Engestrom (5):
- pick-ui: drop assert that optional argument is passed
- pick-ui: show nomination type in the UI
- pick-ui: show commit date
- Revert "python: Explicitly add the 'L' suffix on Python 3"
- isl: drop left-over comment
Ian Romanick (3):
- intel/fs: sel.cond writes the flags on Gfx4 and Gfx5
- Revert "nir/algebraic: Convert some f2u to f2i"
- intel/fs: sel.cond writes the flags on Gfx4 and Gfx5
Icecream95 (2):
- pan/bi: Use the computed scale for fexp NaN propagation
- panfrost: Only allow colour blit shaders to be killed
Jason Ekstrand (2):
- intel/isl: Explicitly set offset_B = 0 in get_uncomp_surf for arrays
- intel/isl: Add a missing assert in isl_tiling_get_intratile_offset_sa
Jesse Natalie (1):
- CI: Update Windows quick_gl baseline for mysterious new passes
Lionel Landwerlin (3):
- anv: don't try to access Android swapchains
- nir/lower_shader_calls: remove empty phis
- anv/android: handle image bindings from gralloc buffers
Lucas Stach (2):
- renderonly: don't complain when GPU import fails
- etnaviv: always try to create KMS side handles for imported resources
Marcin Ślusarz (3):
- glsl: evaluate switch expression once
- nir/builder: invalidate metadata per function
- glsl/opt_algebraic: disable invalid optimization
Michel Dänzer (1):
- ci: Drop "success" job
Michel Zou (1):
- radv: fix build with mingw
Mike Blumenkrantz (2):
- zink: sum available memory heaps instead of assigning
- zink: simplify else clause for mem info gathering
Neha Bhende (1):
- aux/draw: use nir_to_tgsi for draw shader in llvm path
Pierre-Eric Pelloux-Prayer (3):
- st/pbo: only use x coord when reading a PIPE_TEXTURE_1D
- st/pbo: set nir_tex_instr::is_array field
- radeonsi: don't create an infinite number of variants
Rhys Perry (1):
- nir/algebraic: fix imod by negative power-of-two
Roland Scheidegger (1):
- aux/cso: try harder to keep cso state in sync on cso context unbind
Roman Stratiienko (3):
- AOSP: Extract version from libdrm instead of hardcoding it.
- AOSP: Update timestamps of target binaries
- lima: Implement lima_resource_get_param() callback
Samuel Pitoiset (2):
- radv: fix initializing the DS clear metadata value for separate aspects
- radv: flush caches before performing separate depth/stencil aspect init
Tapani Pälli (2):
- crocus: take a reference to memobj bo in crocus_resource_from_memobj
- crocus: disable depth and d+s formats with memory objects
Thong Thai (3):
- gallium/auxiliary/vl: Add additional deinterlace enum and tracking
- gallium/util: add half texel offset param to util_compute_blit
- frontends/va/postproc: Keep track of deinterlacing method being used
Timur Kristóf (2):
- aco: Use Navi 10 empty NGG output workaround on NGG culling shaders.
- radv: Write RSRC2_GS for NGGC when pipeline is dirty but not emitted.
Vinson Lee (2):
- meson: Remove duplicate xvmc in build summary.
- nir: Initialize evaluate_cube_face_index_amd dst.x.

View File

@@ -19,7 +19,7 @@ SHA256 checksum
::
c4aaf1bf974217ed825e1c536de6ab72a4e266d44bcf69fc4ec499039f99e5c4 mesa-21.2.2.tar.xz
TBD.
New features

View File

@@ -1,139 +0,0 @@
Mesa 21.2.3 Release Notes / 2021-09-29
======================================
Mesa 21.2.3 is a bug fix release which fixes bugs found since the 21.2.2 release.
Mesa 21.2.3 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.2.3 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
7245284a159d2484770e1835a673e79e4322a9ddf43b17859668244946db7174 mesa-21.2.3.tar.xz
New features
------------
- None
Bug fixes
---------
- Significant performance drop on Radeon HD 8400
- [nir][radv] Out of range shift when compiling Resident Evil Village shaders
- [nir][radv] Out of range shift when compiling Resident Evil Village shaders
- GL_EXT_disjoint_timer_query glGetInteger64v GL_TIMESTAMP failing with GL_INVALID_ENUM
- Possible miscompilation of an integer division with vulkan
Changes
-------
Boris Brezillon (3):
- panfrost: RGB10_A2_SNORM is not a valid texture format on v6+
- panfrost: RGB332_UNORM is not a valid texture format on v6+
- pan/blit: Fix a NULL dereference in the preload path
Charmaine Lee (1):
- svga: fix render target views leak
Dylan Baker (15):
- docs/relnotes/21.2.2: Add SHA256 sum
- .pick_status.json: Update to d3511e8af21ac11b8e7f5305942624d1ae29a73a
- .pick_status.json: Mark a79ac1bee14d6600cde2788bf136aa59b69a786f as backported
- .pick_status.json: Mark e0533ebf16edcb8b9f0687d3155417e6c1c53d35 as backported
- .pick_status.json: Mark f241bd3749cec55ca5fac9cb24f17553ab31c0e1 as backported
- .pick_status.json: Mark 268158a758551a46feb120af3f3cff5fb9292310 as backported
- .pick_status.json: Mark 6373dd814a74d84becbbbfc42673df147adb6e9b as denominated
- .pick_status.json: Mark eb7d2ef070a8819c2859c10559496836275848e2 as denominated
- .pick_status.json: Mark a810e58051b4a065b0aade86c45bf7ed254fc726 as denominated
- .pick_status.json: Update to 400da4900e2d72ee807cc3eedac9ace1dfd5dfba
- .pick_status.json: Update to dc354b8fda928861b7dfff3f8f53159e0053f9f5
- .pick_status.json: Update to b653164973bbd3053d3b9ed37c4362af96346900
- .pick_status.json: Update to ecc6d78b0541d66765d434dd4158066d6c664f8e
- .pick_status.json: Update to fbbe00c0b7f7aa5aca42a82358332eb2de56b9af
- lavapipe/ci: Add additional failing test
Ella-0 (1):
- v3d: add R10G10B10X2_UNORM to format table
Emma Anholt (1):
- mesa: Fix missing CopyTexImage formats for OES_required_internalformat.
Italo Nicola (1):
- panfrost: fix null deref when no color buffer is attached
Jordan Justen (2):
- iris: Disable I915_FORMAT_MOD_Y_TILED_GEN12* on adl-p/display 13
- intel/dev: Add display_ver and set adl-p to 13
Lionel Landwerlin (1):
- nir: fix opt_memcpy src/dst mixup
Marcin Ślusarz (1):
- intel/compiler: INT DIV function does not support source modifiers
Marek Olšák (2):
- radeonsi: fix a depth texturing performance regression on gfx6-7
- radeonsi: fix clearing index_size for NGG fast launch
Marek Vasut (1):
- freedreno: Handle timeout == PIPE_TIMEOUT_INFINITE and rollover
Neha Bhende (1):
- auxiliary/indices: convert primitive type PIPE_PRIM_PATCHES
Qiang Yu (1):
- radeonsi: fix ps SI_PARAM_LINE_STIPPLE_TEX arg
Rhys Perry (3):
- aco: don't coalesce constant copies into non-power-of-two sizes
- aco/tests: add idep_amdgfxregs_h
- radv: don't require a GS copy shader to use the cache with NGG VS+GS
Rob Clark (2):
- freedreno: Use correct key for binning pass shader
- freedreno/drm: Don't return shared/control bo's to cache
Tapani Pälli (1):
- mesa: fix timestamp enum with EXT_disjoint_timer_query
Timur Kristóf (5):
- aco/optimize_postRA: Use iterators instead of operator[] of std::array.
- ac/nir: Fix match_mask to work correctly for VS outputs.
- nir: Exclude non-generic patch variables from get_variable_io_mask.
- ac/nir/nggc: Refactor save_reusable_variables.
- ac/nir/nggc: Don't reuse uniform values from divergent control flow.
Zachary Michaels (1):
- X11: Ensure that VK_SUBOPTIMAL_KHR propagates to user code

File diff suppressed because it is too large Load Diff

View File

@@ -1,132 +0,0 @@
Mesa 21.3.1 Release Notes / 2021-12-01
======================================
Mesa 21.3.1 is a bug fix release which fixes bugs found since the 21.3.0 release.
Mesa 21.3.1 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.1 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- GPU Crash in Yuzu 6600xt 5.15
- [spirv-fuzz] lower_trivial_continues_block: Assertion \`!first_instr || instr_is_continue(first_instr)' failed.
- [RADV] Crash in Metro Exodus in Caspain chapter and Sam's Story
- NIR validation failed after nir_copy_prop
- lima: Corrupted Android-12 UI on Allwinner A64
- RADV/ACO: Rendering glitches in Forza Horizon 5 windshields
- dEQP-GLES31.*imulextended* compiling fp64 glsl 4.00 shader
Changes
-------
Connor Abbott (3):
- ir3/ra: Consider reg file size when swapping killed sources
- ir3/lower_pcopy: Fix shr.b illegal copy lowering
- ir3/lower_pcopy: Fix bug with "illegal" copies and swaps
Eric Engestrom (2):
- docs: update sha256sum for 21.3.0
- .pick_status.json: Update to 1ba231fb75be5bffd806cbd09ac285d1f8f15e3d
Erico Nunes (1):
- ci: temporarily disable lima CI
Iago Toral Quiroga (3):
- broadcom/compiler: don't allow RF writes from signals after thrend
- broadcom/compiler: fix scoreboard locking checks
- broadcom/compiler: don't move ldvary earlier if current instruction has ldunif
Ian Romanick (1):
- glsl/nir: Don't build soft float64 when it cannot be used
Iván Briano (1):
- intel/nir: also allow unknown format for getting the size of a storage image
Kenneth Graunke (3):
- iris: Make a helper function for cross-batch dependency flushing
- iris: Check for cross-batch flushing whenever a buffer is newly written.
- iris: Tidy code in iris_use_pinned_bo a bit
Lionel Landwerlin (3):
- anv: don't try to close fd = -1
- intel/fs: fix shader call lowering pass
- util/u_trace: refcount payloads
Mauro Rossi (1):
- android: define cpp_rtti=false because libLLVM is built w/o RTTI (v2)
Mike Blumenkrantz (6):
- zink: block suballocator caching for swapchain/dmabuf images
- zink: set suballocator bo size to aligned allocation size
- zink: stop using VK_IMAGE_LAYOUT_PREINITIALIZED for dmabuf
- zink: always set matching resource export type for dmabuf creation
- zink: fix memory availability reporting
- zink: fail context creation more gracefully
Mykhailo Skorokhodov (1):
- nir: Fix read depth for predecessors
Qiang Yu (1):
- glx/dri3: fix glXQueryContext does not return GLX_RENDER_TYPE value
Rhys Perry (4):
- aco/spill: use spills_entry instead of spills_exit to kill linear VGPRs
- spirv: run nir_copy_prop before nir_rematerialize_derefs_in_use_blocks_impl
- nir/dce: fix DCE of loops with a halt or return instruction in the pre-header
- aco: don't create DPP instructions with SGPR operands
Roman Stratiienko (1):
- android.mk: Add missing variables to the make target
Samuel Pitoiset (4):
- radv: disable HTILE for D32S8 format and mipmaps on GFX10
- radv: fix emitting VBO when vertex input dynamic state is used
- radv: add a workaround to fix a segfault with Metro Exodus (Linux native)
- radv: fix resetting the entire vertex input dynamic state
Thomas H.P. Andersen (1):
- svga: fix bitwise/logical and mixup
Vasily Khoruzhick (1):
- lima: disasm: use last argument as a filename

View File

@@ -1,126 +0,0 @@
Mesa 21.3.2 Release Notes / 2021-12-17
======================================
Mesa 21.3.2 is a bug fix release which fixes bugs found since the 21.3.1 release.
Mesa 21.3.2 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.2 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- Flickering and blackscreen on Mpv and Clapper (and also low performance on glxgears)
- DXVK SIGBUS with Turnip on Poco F1 at loading to open world.
- RADV: IsHelperInvocationEXT query is not considered volatile in ACO
- [GraphicsFuzz] dEQP-VK.graphicsfuzz.stable-binarysearch-tree-nested-if-and-conditional
- [bisected] Mesa 21.3.x breaks GBM with NVIDIA closed source driver 495.44
- [DG2] dEQP-GL[45|ES31].functional.shaders.builtin_functions.pack_unpack.packhalf2x16_compute fail
Changes
-------
Alyssa Rosenzweig (1):
- panfrost: Don't shadow Mesa's fui()
Caio Oliveira (1):
- nir: Initialize nir_register::divergent
Danylo Piliaiev (1):
- turnip: Fix operator precedence in address calculation macros for queries
Dave Airlie (1):
- crocus: cleanup bo exports for external objects
Eric Engestrom (1):
- .pick_status.json: Update to a65285f54be6d756a8a558f638c18bb4f075222c
Francisco Jerez (1):
- intel/fs/xehp: Teach SWSB pass about the exec pipeline of FS_OPCODE_PACK_HALF_2x16_SPLIT.
Ian Romanick (2):
- intel/compiler: Don't predicate a WHILE if there is a CONT
- intel/stub: Silence "initialized field overwritten" warning
Jakob Bornecrantz (1):
- vulkan-device-select: Don't leak drmDevicePtr
James Jones (1):
- gbm: Don't pass default usage flags on ABIs < 1
Jason Ekstrand (3):
- crocus: wm_prog_key::key_alpha_test uses GL enums
- anv: Stop doing too much per-sample shading
- radeonsi/nir: Check for VARYING_SLOT_PRIMITIVE_ID not SYSTEM_VALUE
Lionel Landwerlin (4):
- nir/opt_deref: don't try to cast empty structures
- intel/nir: preserve access value when duping intrinsic
- nir/lower_io: include the variable access in the lowered intrinsic
- vulkan: fix missing handling of WSI memory signal
Mauro Rossi (1):
- android: add support for classic dri-drivers (v2)
Michel Zou (1):
- meson: correctly detect linker arguments
Nanley Chery (1):
- iris: Free the local cache bucket in bufmgr_destroy
Pierre-Eric Pelloux-Prayer (1):
- radeonsi: fix fast clear / depth decompression corruption
Rhys Perry (1):
- radv: have the null winsys set more fields
Roman Stratiienko (2):
- v3dv: Fix dEQP-VK.info#instance_extensions test
- v3dv: Fix V3DV_HAS_SURFACE preprocessor condition
Tapani Pälli (1):
- anv: allow VK_IMAGE_LAYOUT_UNDEFINED as final layout
Timur Kristóf (1):
- aco: Clean up and fix quad group instructions with WQM.

View File

@@ -1,108 +0,0 @@
Mesa 21.3.3 Release Notes / 2021-12-29
======================================
Mesa 21.3.3 is a bug fix release which fixes bugs found since the 21.3.2 release.
Mesa 21.3.3 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.3 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- Assassin's Creed Syndicate crashes with Mesa 21.3.0+ ACO
- [21.3 regression] swr: Build failure with MSVC
- anv: dEQP-VK.graphicsfuzz.spv-stable-pillars-volatile-nontemporal-store fails
Changes
-------
Alyssa Rosenzweig (2):
- pan/indirect_draw: Don't upload garbage UBO
- panfrost: Fix Secondary Shader field
Bas Nieuwenhuizen (2):
- radv: Use correct buffer size for query pool result copies.
- radv: Skip wait timeline ioctl with 0 handles.
Daniel Schürmann (2):
- aco/optimizer: fix fneg modifier propagation on VOP3P
- aco/ra: fix get_reg_for_operand() in case of stride mismatches
Emma Anholt (7):
- r300: Fix mis-optimization turning -1 - x into 1 - x.
- r300: Move the instruction filter for r500_transform_IF() to the top.
- r300: Ensure that immediates have matching negate flags too.
- r300: Also consider ALU condition modifiers for loop DCE.
- r300: Disable loop unrolling on r500.
- r300/vs: Allocate temps we see a use as a source, too.
- r300/vs: Fix flow control processing just after an endloop.
Eric Engestrom (2):
- .pick_status.json: Update to 4942e108909bbe0f53ec5fd52a3c7ae14c60abe6
- .pick_status.json: Mark d49d092259829ad9e33d0d9fc8eef9759d9fe56e as denominated
Francisco Jerez (1):
- intel/fs: Add physical fall-through CFG edge for unconditional BREAK instruction.
Jason Ekstrand (1):
- vulkan/log: Don't assert on non-client-visible objects
Jesse Natalie (1):
- microsoft/compiler: Implement inot
Liviu Prodea (1):
- swr: Fix MSVC build
Rob Clark (2):
- freedreno/ir3: Handle instr->address when cloning
- freedreno/computerator: Fix @buf header
Samuel Pitoiset (1):
- radv: re-apply "Do not access set layout during vkCmdBindDescriptorSets."
Tapani Pälli (1):
- glsl: fix invariant qualifer usage and matching rule for GLSL 4.20
Timur Kristóf (2):
- aco/optimizer_postRA: Fix combining DPP into VALU.
- aco/optimizer_postRA: Fix applying VCC to branches.
Vinson Lee (1):
- panfrost: Avoid double unlock.

View File

@@ -1,181 +0,0 @@
Mesa 21.3.4 Release Notes / 2022-01-12
======================================
Mesa 21.3.4 is a bug fix release which fixes bugs found since the 21.3.3 release.
Mesa 21.3.4 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.4 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- i965: gen5 exposes EXT_texture_integer incorrectly
- [radeonsi, regression, bisected]: Rendering issues with Factorio
- mesa >= 21.x (with llvmpipe) will break the game JVGS
- Panfrost - RK3399 - FACTORIO - glitches everywhere
- Baldurs Gate 3 (Patch 6) - ribbon-like artifacts on textures
- Game Starsector crashes under certain circumstances with mesa 21.3.+
- FreeSpace models incorrectly rendered on Polaris cards, causing system freeze
- Incomplete evaluation of nested DEFINE macros
- [r300g, bisected] piglit glsl-fs-discard-04 fails
- Panfrost G52 Firefox terrible glitches on youtube playback
Changes
-------
Alyssa Rosenzweig (3):
- pan/bi: Fix load_const of 1-bit booleans
- gallium/util: Add pixel->blocks box helper
- lima,panfrost: Correct pixel vs block mismatches
Bas Nieuwenhuizen (1):
- radv: Set optimal copy alignment to 1.
Boris Brezillon (1):
- microsoft/compiler: Fix dxil_nir_create_bare_samplers()
Connor Abbott (2):
- ir3/ra: Fix logic bug in compress_regs_left
- ir3: Bump type mismatch penalty to 3
Daniel Schürmann (2):
- aco: don't allow SDWA on VOP3P instructions
- aco: validate VOP3P opsel correctly
Danylo Piliaiev (1):
- tu: fix workaround for depth bounds test without depth test
Dave Airlie (2):
- intel/genxml/gen4-5: fix more Raster Operation in BLT to be a uint
- crocus: fail resource allocation properly.
Emma Anholt (4):
- freedreno/afuc: Disable the disassembler on 32-bit builds.
- i915g: Turn off FP16 in the vertex shaders.
- r300: Fix omod failing to increase the number of channels stored.
- nir_to_tgsi: Fix a bug in TXP detection after backend lowering.
Eric Engestrom (3):
- .pick_status.json: Update to 8a78706643ecad8a1f303cc9358873abc29978b4
- .pick_status.json: Mark 00bea38242d97e7ace1954f1bc7d32cbf0ce3ee0 as denominated
- .pick_status.json: Mark 2a0253b9b5d21c7571555abe3a1d851468a18740 as denominated
Filip Gawin (1):
- r300: fix handling swizzle in transform_source_conflicts
Henry Goffin (1):
- intel/compiler/test: Fix build with GCC 7
Ian Romanick (1):
- i965: Disable EXT_texture_integer on Gfx4 and Gfx5
Jason Ekstrand (1):
- Revert "anv: Stop doing too much per-sample shading"
Lionel Landwerlin (3):
- anv: don't leave anv_batch fields undefined
- anv: limit compiler valid color outputs using NIR variables
- intel/dev: fixup chv workaround
Lucas Stach (3):
- etnaviv: initialize vertex attributes on context reset
- etnaviv: drm: fix size limit in etna_cmd_stream_realloc
- etnaviv: drm: properly handle reviving BOs via a lookup
Michel Zou (1):
- zink: fix -Warray-bounds warning
Mike Blumenkrantz (4):
- radv: fix xfb query copy param ordering
- zink: always unset vertex shader variant key data when changing last vertex stage
- zink: add extra synchronization for buffer descriptor binds
- zink: use device-local heap for sparse backing allocations
Pavel Ondračka (1):
- r300: Remove broken optimization in rc_transform_KILL
Pierre-Eric Pelloux-Prayer (4):
- radeonsi/gfx8: use the proper dcc clear size
- vbo/dlist: fix loopback crash
- vbo/dlist: add vertices to incomplete primitives
- radeonsi/gfx10: fix si_texture_get_offset for mipmapped tex
Qiang Yu (1):
- glapi: should not add alias function to static_data.py
Rhys Perry (1):
- aco: remove pack_half_2x16(a, 0) optimization
Rohan Garg (1):
- intel/fs: OpImageQueryLod does not support arrayed images as an operand
Roman Stratiienko (1):
- v3dv: Hotfix: Rename remaining V3DV_HAS_SURFACE->V3DV_USE_WSI_PLATFORM
Samuel Pitoiset (1):
- radv: add drirc radv_disable_htile_layers and enable it for F1 2021
Tapani Pälli (3):
- iris: unref syncobjs and free r/w dependencies array for slab entries
- mesa: free idalloc storage for display lists
- mesa: free vbo_save_vertex_list store prims
Timothy Arceri (1):
- glsl/glcpp: make sure to expand new token after concatenation
Yiwei Zhang (1):
- venus: subtract appended header size in vn_CreatePipelineCache
satmandu (1):
- Fix compilation on armv7l with gcc 11.2.0

View File

@@ -1,143 +0,0 @@
Mesa 21.3.5 Release Notes / 2022-01-26
======================================
Mesa 21.3.5 is a bug fix release which fixes bugs found since the 21.3.4 release.
Mesa 21.3.5 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.5 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- glGetActiveUniform failing with GL_INVALID_VALUE for no reason
- CopelliaSim crashes on adding vision sensor to a scene on Ubuntu 20+, runs fine on Ubuntu 18.04
- Dirt Rally: Flickering glitches on certain foliage going from Mesa 21.2.5 to 21.3.0
- FrontFacing input is broken on Intel/Vulkan
- llvmpipe: Unimplemented get_driver_uuid/get_device_uuid causes segfaults in e.g. Wine
Changes
-------
Alejandro Piñeiro (1):
- vulkan: return default string for undefined enum
Alyssa Rosenzweig (3):
- pan/bi: Schedule around blend shader register clobbering
- panfrost: Use u_reduced_prim for primitive checks
- panfrost: Only cull polygons
Bas Nieuwenhuizen (1):
- util/fossilize_db: Fix double free in error handling.
Carsten Haitzler (1):
- panfrost: Don't double-free when handling error for unsupported GPU
Charles Baker (1):
- zink: Output PackHalf2x16 to uint not float
Emma Anholt (1):
- softpipe: respect !independent_blend_enable for color masks.
Eric Engestrom (4):
- .pick_status.json: Update to 06504fb9e2382e43b889fd6ca642bb785b544d4d
- .pick_status.json: Mark 1b88777e97f635612c560a2f00d349ea271581b1 as denominated
- .pick_status.json: Mark d1530a3f3b1625baa42e84cba9844b6eb4ac76ce as denominated
- .pick_status.json: Mark 58a843ab14e0eecf044a35154da72cdf7ab6f15a as denominated
Ian Romanick (1):
- intel/fs: Fix gl_FrontFacing optimization on Gfx12+
Kenneth Graunke (1):
- iris: Fix and refactor check for clear color being fully zero
Lepton Wu (1):
- driconf: Fix unhandled tags in static conf
Lionel Landwerlin (2):
- intel/fs: disable VRS when omask is written
- anv: fix missing descriptor copy of bufferview/surfacestate content
Mike Blumenkrantz (10):
- zink: always set number of timestamp results to 1 for internal qbo
- zink: fix availability buffer sizing/copying for xfb queries
- zink: skip readback of qbos with no results
- Revert "zink: when performing an implicit reset, sync qbos"
- zink: use even more accurate stride values for query result copies
- aux/trace: copy over stream_output_target_offset method from context
- util/vbuf: fix buffer translation sizing
- zink: remove SpvMemorySemanticsMakeVisibleMask from nir_intrinsic_memory_barrier
- zink: check EXT_image_drm_format_modifier for dmabuf support
- zink: stop allocating such massive staging regions for buffer maps
Pavel Ondračka (1):
- r300: properly initialize new_vs in r300_draw_init_vertex_shader
Pierre-Eric Pelloux-Prayer (2):
- driconf: enable vs_position_always_invariant for Dirt Rally
- mesa: use less temporaries in build_lighting
Qiang Yu (1):
- nir: fix nir_tex_instr hash not count is_sparse field
Rhys Perry (1):
- nir/unsigned_upper_bound: don't follow 64-bit f2u32()
Rob Clark (5):
- mesa/st: Lowered ucp should still mark rast state dirty
- freedreno: Pass shader cache key instead of shader key
- freedreno: Add FD_DIRTY_RASTERIZER_CLIP_PLANE_ENABLE
- freedreno/a6xx: Fix clip_mask
- freedreno/a5xx: Fix clip_mask
Stefan Brüns (1):
- llvmpipe: Add get_{driver,device}_uuid implementations
Tapani Pälli (2):
- mesa: refactor GetProgramiv to use program resource list
- mesa: move GetProgramInterfaceiv as a shader_query function
Yiwei Zhang (1):
- venus: VkExternalImageFormatProperties is optional

View File

@@ -1,149 +0,0 @@
Mesa 21.3.6 Release Notes / 2022-02-09
======================================
Mesa 21.3.6 is a bug fix release which fixes bugs found since the 21.3.5 release.
Mesa 21.3.6 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.6 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- radv: CullDistance fail
- i965: Segmentation fault during glinfo context destruction, regression in 21.3.x
- Vulkan Wayland WSI returns empty surface formats
- [REGRESSION][BISECTED] iris: Qutebrowser/QtWebEngine sporadically flashes the window in white
- Flickering Intel Uhd 620 Graphics
- Broken Terraria & Glitches in Forza Horizon 4
Changes
-------
Bas Nieuwenhuizen (1):
- Revert "nir/algebraic: distribute fmul(fadd(a, b), c) when b and c are constants"
Caio Oliveira (1):
- anv: Fix subgroupSupportedStages physical property
Charles Baker (1):
- Revert "zink: handle vertex buffer offset overflows"
Connor Abbott (2):
- ir3: Fix copy-paste mistakes in ir3_block_remove_physical_predecessor()
- ir3/cp: ir3: Prevent propagating shared regs out of loops harder
Danylo Piliaiev (1):
- ir3: opt_deref in opt loop to remove unnecessary tex casts
Dave Airlie (1):
- crocus: find correct relocation target for the bo.
Emma Anholt (1):
- vulkan: Fix leak of error messages
Eric Engestrom (3):
- .pick_status.json: Update to cb781fc350108584116280fc597c695d2f476c68
- .pick_status.json: Mark 15e77504461a30038a054c87cc53a694171c9cf4 as denominated
- .pick_status.json: Mark 960e72417f3e8885699cf384f690853e14ba44da as denominated
Francisco Jerez (1):
- intel/fs: Take into account region strides during SIMD lowering decision of SHUFFLE.
Georg Lehmann (4):
- vulkan/wsi/wayland: Fix add_wl_shm_format alpha/opaqueness.
- vulkan/wsi/wayland: Convert missing vulkan formats to shm formats.
- vulkan/wsi/wayland: Add modifiers for RGB formats.
- vulkan/wsi/wayland: Fix add_drm_format_modifier aplha/opaqueness.
Jason Ekstrand (2):
- anv/pass: Don't set first_subpass_layout for stencil-only attachments
- vulkan/wsi: Set MUTABLE_FORMAT_BIT in the prime path
Kenneth Graunke (1):
- i965: Avoid NULL drawbuffer in brw_flush_front
Lionel Landwerlin (2):
- intel/fs: don't set allow_sample_mask for CS intrinsics
- intel/nir: fix shader call lowering
Manas Chaudhary (1):
- panvk: Fix pointer corruption in panvk_add_wait_event_syncobjs
Mike Blumenkrantz (15):
- zink: never use SpvOpImageQuerySizeLod for texel buffers
- zink: reorder fbfetch flag-setting to avoid null deref
- zink: fix vertex buffer mask computation for null buffers
- zink: clamp tbo creation to maxTexelBufferElements
- zink: add vertex shader pipeline bit for generated barrier construction
- zink: fix waiting on current batch id
- zink: cast image atomic op params/results based on image type
- zink: use SpvScopeDevice over SpvScopeWorkgroup for atomic shader ops
- zink: disable PIPE_SHADER_CAP_FP16_CONST_BUFFERS
- llvmpipe: disable PIPE_SHADER_CAP_FP16_CONST_BUFFERS
- llvmpipe: ci updates
- zink: add VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT for query binds
- zink: fix PIPE_CAP_TGSI_BALLOT export conditional
- zink: reject invalid draws
- zink: min/max blit region in coverage functions
Nanley Chery (3):
- anv: Disable CCS_E for some 8/16bpp copies on TGL+
- anv: Use ANV_FAST_CLEAR_DEFAULT_VALUE for CCS on TGL+
- anv: Re-enable CCS_E on TGL+
Paulo Zanoni (1):
- iris: implement inter-context busy-tracking
Rhys Perry (3):
- aco: fix neg(abs(mul(a, b))) if the mul is not VOP3
- aco: don't encode src2 for v_writelane_b32_e64
- radv: fix R_02881C_PA_CL_VS_OUT_CNTL with mixed cull/clip distances
Samuel Pitoiset (1):
- radv/winsys: fix missing buffer_make_resident() for the null winsys
Yiwei Zhang (1):
- tu: VkExternalImageFormatProperties is optional

View File

@@ -1,148 +0,0 @@
Mesa 21.3.7 Release Notes / 2022-02-23
======================================
Mesa 21.3.7 is a bug fix release which fixes bugs found since the 21.3.6 release.
Mesa 21.3.7 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.7 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- lavapipe: dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic_3.step fails
- ANV: Bad output from TransformFeedback . Regression from Mesa 21. Something to do with VB+XFB -> VB+XFB dependency?
Changes
-------
Alyssa Rosenzweig (4):
- pan/bi: Avoid \*FADD.v2f16 hazard in optimizer
- pan/bi: Avoid \*FADD.v2f16 hazard in scheduler
- pan/bi: Lower swizzles on CSEL.i32/MUX.i32
- panvk: Use more reliable assert for UBO pushing
Bas Nieuwenhuizen (1):
- radv: Fix preamble argument order.
Connor Abbott (1):
- ir3/spill: Fix simplify_phi_nodes with multiple loop nesting
Dave Airlie (3):
- lavapipe: fix sampler + sampler view leaks.
- lavapipe: reference gallium fences correctly.
- crocus: fix leak on gen4/5 stencil fallback blit path.
Emma Anholt (1):
- i915g: Initialize the rest of the "from_nir" temporary VS struct.
Eric Engestrom (2):
- .pick_status.json: Update to dabba7d7263be6ffb6f3676465e92c65952fa824
- .pick_status.json: Mark b07372312d7053f2ef5c858ceb1fbf9ade5e7c52 as denominated
Ian Romanick (9):
- gallivm/nir: Call nir_lower_bool_to_int32 after nir_opt_algebraic_late
- nir: All set-on-comparison opcodes can take all float types
- intel/fs: Don't optimize out 1.0*x and -1.0*x
- spriv: Produce correct result for GLSLstd450Step with NaN
- spirv: Produce correct result for GLSLstd450Modf with Inf
- spirv: Produce correct result for GLSLstd450Tanh with NaN
- nir: Properly handle various exceptional values in frexp
- nir: Produce correct results for atan with NaN
- nir: Add missing dependency on nir_opcodes.py
Jason Ekstrand (1):
- anv: Call vk_command_buffer_finish if create fails
Jonathan Gray (1):
- dri: avoid NULL deref of DrawBuffer on flush
Lionel Landwerlin (2):
- nir: fix lower_memcpy
- anv/genxml/intel/fs: fix binding shader record entry
Marcin Ślusarz (1):
- anv: don't set color state when input state was requested
Marek Olšák (1):
- ac/surface: add more elements to meta equations because HTILE can use them
Mike Blumenkrantz (4):
- lavapipe: use util_pack_color_union() for generating clear colors
- aux/draw: fix llvm tcs lane vec generation
- zink: always set VkPipelineMultisampleStateCreateInfo::pSampleMask
- zink: always invalidate streamout counter buffer if not resuming
Nanley Chery (1):
- iris: Don't fast clear with the view format
Pavel Ondračka (1):
- r300: fix transformation of abs modifiers with negate
Qiang Yu (3):
- radeonsi: workaround Specviewperf13 Catia hang on GFX9
- radeonsi: fix depth stencil multi sample texture blit
- glx: fix pbuffer refcount init
Samuel Pitoiset (1):
- radv/winsys: fix initializing debug/perftest options if multiple instances
Tapani Pälli (5):
- intel/genxml: add PIPE_CONTROL field for L3 read only cache invalidation
- anv: invalidate L3 read only cache when VF cache is invalidated
- iris: invalidate L3 read only cache when VF cache is invalidated
- iris: fix a leak on surface states
- mesa/st: always use DXT5 when transcoding ASTC format
Thierry Reding (2):
- tegra: Use private reference count for sampler views
- tegra: Use private reference count for resources
Timur Kristóf (1):
- radv: Disable IB2 on compute queues.
Yiwei Zhang (1):
- venus: properly destroy deferred ahb image before real image creation

View File

@@ -1,183 +0,0 @@
Mesa 21.3.8 Release Notes / 2022-03-18
======================================
Mesa 21.3.8 is a bug fix release which fixes bugs found since the 21.3.7 release.
Mesa 21.3.8 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.8 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
TBD.
New features
------------
- None
Bug fixes
---------
- freedreno: deqp cts fails
- radeonsi dEQP-GLES3.functional.buffer.map.write.explicit_flush.* flake crashes
- Square Artifacts Dragons Dogma
- radv: When using VS+PS only, primitive ID is mixed up after NGG culling
- Redraw freeze after upgrade to Xwayland 21.1.3
- anv doesn't always resolve aux buffers with private bindings on transition to external queue
- [ANV] Rendering corruption in DOOM Eternal
Changes
-------
Adam Jackson (1):
- meson: Add "amber" option for automatic LTS build configuration
Alyssa Rosenzweig (6):
- panfrost: Fix FD resource_get_handle
- panfrost: Handle NULL sampler views
- panfrost: Handle NULL samplers
- panfrost: Flush resources when shadowing
- panfrost: Push twice as many uniforms
- panfrost: Fix set_sampler_views for big GL
Connor Abbott (4):
- ir3: Don't always set bindless_tex with readonly images
- ir3/nir: Fix 1d array readonly images
- ir3/ra: Sanitize parallel copy flags better
- util/bitset: Fix off-by-one in __bitset_set_range
Danylo Piliaiev (1):
- turnip: Use LATE_Z when there might be depth/stencil feedback loop
Dave Airlie (5):
- draw/so: don't use pre clip pos if we have a tes either.
- crocus: change the line width workaround for gfx4/5
- gallivm/nir: extract a valid texture index according to exec_mask.
- zink: workaround depth texture mode alpha.
- lavapipe: remove broken workaround for zink depth texturing.
Eric Engestrom (14):
- .pick_status.json: Update to 2106c3bab6bdea736c468fb1866fd0f372cc0baa
- .pick_status.json: Mark 7ec0e2b89351e6e56cb112e00e6c68c6bbc6faea as denominated
- .pick_status.json: Mark 0136545d169adb75e4f9f6b4de38eef0817c1241 as denominated
- .pick_status.json: Mark 62b8daa889daefb2f191a63f370541bf2b807e88 as denominated
- .pick_status.json: Mark 698ae34844b7199b8acc3b4d74a9cad3b903bdef as denominated
- .pick_status.json: Mark 03a80490a47b0b616566c6f56581560694976b1a as denominated
- .pick_status.json: Mark e1964e1dde7bf44ceeaf3fa8b3869e791af4a369 as denominated
- .pick_status.json: Mark 3ef093f697ad9027ba514c7a4a6a10b7bd95bd47 as denominated
- .pick_status.json: Mark 2d1b506acfe55165511a2bb83acb013353e531ab as denominated
- .pick_status.json: Mark 204ea77b0674fb611155bd3ba2e6169cc8646b3f as denominated
- .pick_status.json: Mark a5c7d34fdf8403b0115d5eead7ca67027e93efc7 as denominated
- .pick_status.json: Mark 432700fc61a33e0c040d47d9b7bd8cfe970d35cc as denominated
- .pick_status.json: Mark 4ed7329236a576b6b6f615787bb722b960f32c6b as denominated
- .pick_status.json: Mark 3f7da0c58447979976eb2928625b1f93154f6c57 as denominated
Erik Faye-Lund (2):
- docs: remove incorrect drivers from extension
- docs: fixup zink gl 4.3 requirements
Icecream95 (6):
- panfrost: Set PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
- pan/bi: Check dependencies of both destinations of instructions
- panfrost: Set dirty state in set_shader_buffers
- panfrost: Re-emit descriptors after resource shadowing
- pan/bi: Make disassembler build reproducibly
- panfrost: Fix ubo_mask calculation
Jason Ekstrand (2):
- anv: Don't assume depth/stencil attachments have depth
- lavapipe: Reset the free_cmd_buffers list in TrimCommandPool
Jonathan Gray (6):
- util: unbreak non-linux mips64 build
- util: fix util_cpu_detect_once() build on OpenBSD
- util/u_atomic: fix build on clang archs without 64-bit atomics
- util: fix build with clang 10 on mips64
- util: use correct type in sysctl argument
- radv: use MAJOR_IN_SYSMACROS for sysmacros.h include
Lionel Landwerlin (3):
- anv: fix conditional render for vkCmdDrawIndirectByteCountEXT
- anv: fix fast clear type value with external images
- intel/fs: fix total_scratch computation
Marek Olšák (2):
- amd: add a workaround for an SQ perf counter bug
- radeonsi: fix an assertion failure with register shadowing
Mike Blumenkrantz (16):
- gallivm: avoid division by zero when computing cube face
- zink: always update shader variants when rebinding a gfx program
- zink: use a fence for pipeline cache update jobs
- zink: wait on program cache fences before destroying programs
- zink: fix descriptor cache pointer array allocation
- zink: mark fbfetch push sets as non-cached
- zink: stop leaking descriptor sets
- zink: invalidate non-punted recycled descriptor sets that are not valid
- zink: fix 64bit float shader ops
- llvmpipe: fix debug print iterating in set_framebuffer_state
- llvmpipe: clamp surface clear geometry
- lavapipe: update multisample state after blend state
- aux/trace: rzalloc the context struct
- zink: lower dmod on AMD hardware
- lavapipe: skip format checks for EXTENDED_USAGE
- lavapipe: run nir_opt_copy_prop_vars during optimization loop
Paulo Zanoni (1):
- iris: fix register spilling on compute shaders on XeHP
Pierre-Eric Pelloux-Prayer (3):
- radeonsi: change rounding mode to round to even
- util/slab: add slab_zalloc
- gallium/tc: zero alloc transfers
Rhys Perry (2):
- anv: Enable nir_opt_access
- radv: include adjust_frag_coord_z in key
Rob Clark (1):
- mesa: Fix discard_framebuffer for fbo vs winsys
Samuel Pitoiset (2):
- radv,drirc: move RADV workarounds to 00-radv-defaults.conf
- radv: disable DCC for Fable Anniversary, Dragons Dogma, GTA IV and more
Timur Kristóf (1):
- ac/nir/ngg: Fix mixed up primitive ID after culling.
Xiaohui Gu (1):
- iris: Mark a dirty update when vs_needs_sgvs_element value changed

View File

@@ -1,119 +0,0 @@
Mesa 21.3.9 Release Notes / 2022-06-08
======================================
Mesa 21.3.9 is a bug fix release which fixes bugs found since the 21.3.8 release.
Mesa 21.3.9 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 21.3.9 implements the Vulkan 1.2 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA256 checksum
---------------
::
91fe6f20339884e37a7c47bfba42fb1cd397512c9ed5ad423de369f047cd8b5c mesa-21.3.9.tar.xz
New features
------------
- None
Bug fixes
---------
- [regression][bisected] MSVC: Build failure in libmesa_util when targeting x86 32-bit
- A crash in radeonsi driver
Changes
-------
Alyssa Rosenzweig (2):
- panfrost: Emulate GL_CLAMP on Bifrost
- pan/bi: Handle non-2D arrays
Dave Airlie (2):
- crocus: don't map scanout buffers as write-back
- intel/perf: use a function to do common allocations
Emma Anholt (2):
- vulkan: Make sure we've loaded our connectors when querying plane props.
- intel/perf: Move some static blocks of C code out of the python script.
Eric Engestrom (3):
- .pick_status.json: Update to 05d687723530ed3c5c9f7d0addb3b047138613a3
- .pick_status.json: Update to fc381fa1e341bc9cf71f53a915dc47926a3f621f
- Revert "glx: Fix build errors with --enable-mangling (v2)"
Erik Faye-Lund (1):
- Revert "ci: downgrade sphinx to v3.x"
Georg Lehmann (1):
- radv: Don't hash ycbcr sampler base object.
Ian Romanick (1):
- intel/fs: Force destination types on DP4A instructions
Icecream95 (2):
- panfrost: Don't initialise the trampolines array
- panfrost: Optimise recalculation of max sampler view
Jason Ekstrand (1):
- anv: Allow MSAA resolve with different numbers of planes
Jonathan Gray (1):
- util: fix msvc build
Lionel Landwerlin (4):
- anv: fix variable shadowing
- anv: zero-out anv_batch_bo
- anv: emit timestamp & availability using the same part of CS
- anv: flush tile cache with query copy command
Matt Turner (8):
- intel/perf: Don't print leading space from desc_units()
- intel/perf: Deduplicate perf counters
- intel/perf: Use a function to initialize perf counters
- intel/perf: Use slimmer intel_perf_query_counter_data struct
- intel/perf: Store indices to strings rather than pointers
- intel/perf: Mark intel_perf_counter_* enums as PACKED
- intel/perf: Fix mistake in description string
- intel/perf: Destination array calculation into function
Mike Blumenkrantz (9):
- llvmpipe: fix occlusion queries with early depth test
- anv: fix xfb usage with rasterizer discard
- anv: fix CmdSetColorWriteEnableEXT for maximum rts
- anv: fix some dynamic rasterization discard cases in pipeline construction
- lavapipe: always clone shader nir for shader states
- gallivm: fix oob image detection for cube/1dArray/2dArray/cubeArray
- zink: flag sample locations for re-set on batch flush
- zink: force-add usage when adding last-ref tracking
- zink: only update usage on buffer rebind if rebinds occurred
Pierre-Eric Pelloux-Prayer (1):
- radeonsi: don't clear framebuffer.state before dcc decomp

View File

@@ -6,15 +6,34 @@ extern "C" {
#endif
/*
** Copyright 2013-2020 The Khronos Group Inc.
** SPDX-License-Identifier: Apache-2.0
** Copyright (c) 2013-2017 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
** "Materials"), to deal in the Materials without restriction, including
** without limitation the rights to use, copy, modify, merge, publish,
** distribute, sublicense, and/or sell copies of the Materials, and to
** permit persons to whom the Materials are furnished to do so, subject to
** the following conditions:
**
** The above copyright notice and this permission notice shall be included
** in all copies or substantial portions of the Materials.
**
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
*/
/*
** This header is generated from the Khronos EGL XML API Registry.
** The current version of the Registry, generator scripts
** used to make the header, and the header can be found at
** http://www.khronos.org/registry/egl
**
** Khronos $Git commit SHA1: e8baa0bf39 $ on $Git commit date: 2021-04-26 17:56:26 -0600 $
** Khronos $Git commit SHA1: b5409265f3 $ on $Git commit date: 2020-02-20 08:24:34 -0800 $
*/
#include <EGL/eglplatform.h>
@@ -23,7 +42,7 @@ extern "C" {
#define EGL_EGL_PROTOTYPES 1
#endif
/* Generated on date 20210604 */
/* Generated on date 20200220 */
/* Generated C header for:
* API: egl

View File

@@ -6,20 +6,39 @@ extern "C" {
#endif
/*
** Copyright 2013-2020 The Khronos Group Inc.
** SPDX-License-Identifier: Apache-2.0
** Copyright (c) 2013-2017 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
** "Materials"), to deal in the Materials without restriction, including
** without limitation the rights to use, copy, modify, merge, publish,
** distribute, sublicense, and/or sell copies of the Materials, and to
** permit persons to whom the Materials are furnished to do so, subject to
** the following conditions:
**
** The above copyright notice and this permission notice shall be included
** in all copies or substantial portions of the Materials.
**
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
*/
/*
** This header is generated from the Khronos EGL XML API Registry.
** The current version of the Registry, generator scripts
** used to make the header, and the header can be found at
** http://www.khronos.org/registry/egl
**
** Khronos $Git commit SHA1: dc0b58dca5 $ on $Git commit date: 2021-06-25 01:58:50 +0200 $
** Khronos $Git commit SHA1: b5409265f3 $ on $Git commit date: 2020-02-20 08:24:34 -0800 $
*/
#include <EGL/eglplatform.h>
#define EGL_EGLEXT_VERSION 20210629
#define EGL_EGLEXT_VERSION 20200220
/* Generated C header for:
* API: egl
@@ -574,14 +593,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
#ifndef EGL_ANGLE_sync_control_rate
#define EGL_ANGLE_sync_control_rate 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
#ifdef EGL_EGLEXT_PROTOTYPES
EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
#endif
#endif /* EGL_ANGLE_sync_control_rate */
#ifndef EGL_ANGLE_window_fixed_size
#define EGL_ANGLE_window_fixed_size 1
#define EGL_FIXED_SIZE_ANGLE 0x3201
@@ -651,11 +662,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id
#endif
#endif /* EGL_EXT_compositor */
#ifndef EGL_EXT_config_select_group
#define EGL_EXT_config_select_group 1
#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0
#endif /* EGL_EXT_config_select_group */
#ifndef EGL_EXT_create_context_robustness
#define EGL_EXT_create_context_robustness 1
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
@@ -688,11 +694,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
#define EGL_DRM_MASTER_FD_EXT 0x333C
#endif /* EGL_EXT_device_drm */
#ifndef EGL_EXT_device_drm_render_node
#define EGL_EXT_device_drm_render_node 1
#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377
#endif /* EGL_EXT_device_drm_render_node */
#ifndef EGL_EXT_device_enumeration
#define EGL_EXT_device_enumeration 1
#endif /* EGL_EXT_device_enumeration */
@@ -702,26 +703,10 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
#endif /* EGL_EXT_device_openwf */
#ifndef EGL_EXT_device_persistent_id
#define EGL_EXT_device_persistent_id 1
#define EGL_DEVICE_UUID_EXT 0x335C
#define EGL_DRIVER_UUID_EXT 0x335D
#define EGL_DRIVER_NAME_EXT 0x335E
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
#ifdef EGL_EGLEXT_PROTOTYPES
EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
#endif
#endif /* EGL_EXT_device_persistent_id */
#ifndef EGL_EXT_device_query
#define EGL_EXT_device_query 1
#endif /* EGL_EXT_device_query */
#ifndef EGL_EXT_device_query_name
#define EGL_EXT_device_query_name 1
#define EGL_RENDERER_EXT 0x335F
#endif /* EGL_EXT_device_query_name */
#ifndef EGL_EXT_gl_colorspace_bt2020_linear
#define EGL_EXT_gl_colorspace_bt2020_linear 1
#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
@@ -898,16 +883,11 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
#endif /* EGL_EXT_platform_x11 */
#ifndef EGL_EXT_platform_xcb
#define EGL_EXT_platform_xcb 1
#ifndef EGL_MESA_platform_xcb
#define EGL_MESA_platform_xcb 1
#define EGL_PLATFORM_XCB_EXT 0x31DC
#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE
#endif /* EGL_EXT_platform_xcb */
#ifndef EGL_EXT_present_opaque
#define EGL_EXT_present_opaque 1
#define EGL_PRESENT_OPAQUE_EXT 0x31DF
#endif /* EGL_EXT_present_opaque */
#endif /* EGL_MESA_platform_xcb */
#ifndef EGL_EXT_protected_content
#define EGL_EXT_protected_content 1
@@ -1175,24 +1155,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface sur
#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
#endif /* EGL_NV_robustness_video_memory_purge */
#ifndef EGL_NV_stream_consumer_eglimage
#define EGL_NV_stream_consumer_eglimage 1
#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373
#define EGL_STREAM_IMAGE_ADD_NV 0x3374
#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375
#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, EGLuint64KHR *modifiers, EGLAttrib *attrib_list);
typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
#ifdef EGL_EGLEXT_PROTOTYPES
EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, EGLuint64KHR *modifiers, EGLAttrib *attrib_list);
EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
#endif
#endif /* EGL_NV_stream_consumer_eglimage */
#ifndef EGL_NV_stream_consumer_gltexture_yuv
#define EGL_NV_stream_consumer_gltexture_yuv 1
#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C

View File

@@ -38,7 +38,9 @@
#if defined(__WIN32__) && !defined(__CYGWIN__)
# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
# define GLAPI __declspec(dllexport)
# else
# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
# define GLAPI __declspec(dllimport)
# else /* for use with static link lib build of Win32 edition only */
# define GLAPI extern
# endif
# if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */

View File

@@ -48,6 +48,8 @@ typedef unsigned int drm_drawable_t;
typedef struct drm_clip_rect drm_clip_rect_t;
#endif
#include <GL/gl.h>
#include <stdint.h>
/**
@@ -151,6 +153,32 @@ struct __DRIswapControlExtensionRec {
unsigned int (*getSwapInterval)(__DRIdrawable *drawable);
};
/**
* Used by drivers that implement the GLX_MESA_swap_frame_usage extension.
*/
#define __DRI_FRAME_TRACKING "DRI_FrameTracking"
#define __DRI_FRAME_TRACKING_VERSION 1
struct __DRIframeTrackingExtensionRec {
__DRIextension base;
/**
* Enable or disable frame usage tracking.
*
* \since Internal API version 20030317.
*/
int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable);
/**
* Retrieve frame usage information.
*
* \since Internal API version 20030317.
*/
int (*queryFrameTracking)(__DRIdrawable *drawable,
int64_t * sbc, int64_t * missedFrames,
float * lastMissedUsage, float * usage);
};
/**
* Used by drivers that implement the GLX_SGI_video_sync extension.
*/
@@ -177,6 +205,24 @@ struct __DRImediaStreamCounterExtensionRec {
int64_t *msc);
};
#define __DRI_TEX_OFFSET "DRI_TexOffset"
#define __DRI_TEX_OFFSET_VERSION 1
struct __DRItexOffsetExtensionRec {
__DRIextension base;
/**
* Method to override base texture image with a driver specific 'offset'.
* The depth passed in allows e.g. to ignore the alpha channel of texture
* images where the non-alpha components don't occupy a whole texel.
*
* For GLX_EXT_texture_from_pixmap with AIGLX.
*/
void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname,
unsigned long long offset, GLint depth, GLuint pitch);
};
/* Valid values for format in the setTexBuffer2 function below. These
* values match the GLX tokens for compatibility reasons, but we
* define them here since the DRI interface can't depend on GLX. */
@@ -197,7 +243,7 @@ struct __DRItexBufferExtensionRec {
* setTexBuffer2 in version 2 of this interface
*/
void (*setTexBuffer)(__DRIcontext *pDRICtx,
int target,
GLint target,
__DRIdrawable *pDraw);
/**
@@ -209,8 +255,8 @@ struct __DRItexBufferExtensionRec {
* \since 2
*/
void (*setTexBuffer2)(__DRIcontext *pDRICtx,
int target,
int format,
GLint target,
GLint format,
__DRIdrawable *pDraw);
/**
* Method to release texture buffer in case some special platform
@@ -221,7 +267,7 @@ struct __DRItexBufferExtensionRec {
* \since 3
*/
void (*releaseTexBuffer)(__DRIcontext *pDRICtx,
int target,
GLint target,
__DRIdrawable *pDraw);
};
@@ -364,8 +410,8 @@ struct __DRI2fenceExtensionRec {
* \param flags a combination of __DRI2_FENCE_FLAG_xxx flags
* \param timeout the timeout in ns or __DRI2_FENCE_TIMEOUT_INFINITE
*/
unsigned char (*client_wait_sync)(__DRIcontext *ctx, void *fence,
unsigned flags, uint64_t timeout);
GLboolean (*client_wait_sync)(__DRIcontext *ctx, void *fence,
unsigned flags, uint64_t timeout);
/**
* This function enqueues a wait command into the command stream of
@@ -503,6 +549,28 @@ typedef struct __DRIdamageExtensionRec __DRIdamageExtension;
typedef struct __DRIloaderExtensionRec __DRIloaderExtension;
typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension;
/**
* Callback to getDrawableInfo protocol
*/
#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo"
#define __DRI_GET_DRAWABLE_INFO_VERSION 1
struct __DRIgetDrawableInfoExtensionRec {
__DRIextension base;
/**
* This function is used to get information about the position, size, and
* clip rects of a drawable.
*/
GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable,
unsigned int * index, unsigned int * stamp,
int * x, int * y, int * width, int * height,
int * numClipRects, drm_clip_rect_t ** pClipRects,
int * backX, int * backY,
int * numBackClipRects, drm_clip_rect_t ** pBackClipRects,
void *loaderPrivate);
};
/**
* Callback to get system time for media stream counter extensions.
*/
@@ -523,7 +591,7 @@ struct __DRIsystemTimeExtensionRec {
* the rate of the "media stream counter". In practical terms, this is
* the frame refresh rate of the display.
*/
unsigned char (*getMSCRate)(__DRIdrawable *draw,
GLboolean (*getMSCRate)(__DRIdrawable *draw,
int32_t * numerator, int32_t * denominator,
void *loaderPrivate);
};
@@ -554,7 +622,7 @@ struct __DRIdamageExtensionRec {
void (*reportDamage)(__DRIdrawable *draw,
int x, int y,
drm_clip_rect_t *rects, int num_rects,
unsigned char front_buffer,
GLboolean front_buffer,
void *loaderPrivate);
};
@@ -653,9 +721,9 @@ struct __DRIswrastLoaderExtensionRec {
*
* \since 6
*/
unsigned char (*getImageShm2)(__DRIdrawable *readable,
int x, int y, int width, int height,
int shmid, void *loaderPrivate);
GLboolean (*getImageShm2)(__DRIdrawable *readable,
int x, int y, int width, int height,
int shmid, void *loaderPrivate);
};
/**
@@ -1135,27 +1203,50 @@ struct __DRIdri2LoaderExtensionRec {
#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0
#define __DRI_CTX_ATTRIB_MINOR_VERSION 1
#define __DRI_CTX_ATTRIB_FLAGS 2
/**
* \requires __DRI2_ROBUSTNESS.
*/
#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3
#define __DRI_CTX_FLAG_DEBUG 0x00000001
#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002
/**
* \requires __DRI2_ROBUSTNESS.
*/
#define __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS 0x00000004
/**
* \requires __DRI2_NO_ERROR.
*
*/
#define __DRI_CTX_FLAG_NO_ERROR 0x00000008
#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3
/**
* \name Context reset strategies.
*/
/*@{*/
#define __DRI_CTX_RESET_NO_NOTIFICATION 0
#define __DRI_CTX_RESET_LOSE_CONTEXT 1
/*@}*/
#define __DRI_CTX_ATTRIB_PRIORITY 4
#define __DRI_CTX_PRIORITY_LOW 0
#define __DRI_CTX_PRIORITY_MEDIUM 1
#define __DRI_CTX_PRIORITY_HIGH 2
/**
* \name Context release behaviors.
*/
/*@{*/
#define __DRI_CTX_ATTRIB_RELEASE_BEHAVIOR 5
#define __DRI_CTX_RELEASE_BEHAVIOR_NONE 0
#define __DRI_CTX_RELEASE_BEHAVIOR_FLUSH 1
#define __DRI_CTX_NUM_ATTRIBS 6
/*@}*/
/**
* \name Reasons that __DRIdri2Extension::createContextAttribs might fail
@@ -1441,7 +1532,7 @@ struct __DRIimageExtensionRec {
unsigned int use,
void *loaderPrivate);
unsigned char (*queryImage)(__DRIimage *image, int attrib, int *value);
GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
/**
* The new __DRIimage will share the content with the old one, see dup(2).
@@ -1453,7 +1544,7 @@ struct __DRIimageExtensionRec {
*
* \since 2
*/
unsigned char (*validateUsage)(__DRIimage *image, unsigned int use);
GLboolean (*validateUsage)(__DRIimage *image, unsigned int use);
/**
* Unlike createImageFromName __DRI_IMAGE_FORMAT is not used but instead
@@ -1634,8 +1725,8 @@ struct __DRIimageExtensionRec {
*
* \since 15
*/
unsigned char (*queryDmaBufFormats)(__DRIscreen *screen, int max,
int *formats, int *count);
GLboolean (*queryDmaBufFormats)(__DRIscreen *screen, int max,
int *formats, int *count);
/*
* dmabuf format modifier query for a given format to support
@@ -1656,10 +1747,10 @@ struct __DRIimageExtensionRec {
*
* \since 15
*/
unsigned char (*queryDmaBufModifiers)(__DRIscreen *screen, int fourcc,
int max, uint64_t *modifiers,
unsigned int *external_only,
int *count);
GLboolean (*queryDmaBufModifiers)(__DRIscreen *screen, int fourcc,
int max, uint64_t *modifiers,
unsigned int *external_only,
int *count);
/**
* dmabuf format modifier attribute query for a given format and modifier.
@@ -1675,11 +1766,9 @@ struct __DRIimageExtensionRec {
*
* \since 16
*/
unsigned char (*queryDmaBufFormatModifierAttribs)(__DRIscreen *screen,
uint32_t fourcc,
uint64_t modifier,
int attrib,
uint64_t *value);
GLboolean (*queryDmaBufFormatModifierAttribs)(__DRIscreen *screen,
uint32_t fourcc, uint64_t modifier,
int attrib, uint64_t *value);
/**
* Create a DRI image from the given renderbuffer.
@@ -1751,36 +1840,14 @@ struct __DRIimageExtensionRec {
* with new lookup functions.
*/
#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP"
#define __DRI_IMAGE_LOOKUP_VERSION 2
#define __DRI_IMAGE_LOOKUP_VERSION 1
typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension;
struct __DRIimageLookupExtensionRec {
__DRIextension base;
/**
* Lookup EGLImage without validated. Equivalent to call
* validateEGLImage() then lookupEGLImageValidated().
*
* \since 1
*/
__DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image,
void *loaderPrivate);
/**
* Check if EGLImage is associated with the EGL display before lookup with
* lookupEGLImageValidated(). It will hold EGLDisplay.Mutex, so is separated
* out from lookupEGLImage() to avoid deadlock.
*
* \since 2
*/
unsigned char (*validateEGLImage)(void *image, void *loaderPrivate);
/**
* Lookup EGLImage after validateEGLImage(). No lock in this function.
*
* \since 2
*/
__DRIimage *(*lookupEGLImageValidated)(void *image, void *loaderPrivate);
};
/**
@@ -1925,7 +1992,6 @@ typedef struct __DRIDriverVtableExtensionRec {
#define __DRI2_RENDERER_HAS_CONTEXT_PRIORITY_HIGH (1 << 2)
#define __DRI2_RENDERER_HAS_PROTECTED_CONTENT 0x000e
#define __DRI2_RENDERER_PREFER_BACK_BUFFER_REUSE 0x000f
typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension;
struct __DRI2rendererQueryExtensionRec {
@@ -2135,7 +2201,7 @@ struct __DRIbackgroundCallableExtensionRec {
* the context was created. This can be used by the loader to identify
* which context any callbacks are associated with.
*/
unsigned char (*isThreadSafe)(void *loaderPrivate);
GLboolean (*isThreadSafe)(void *loaderPrivate);
};
/**

View File

@@ -332,6 +332,8 @@ typedef struct AHardwareBuffer_Planes {
*/
typedef struct AHardwareBuffer AHardwareBuffer;
#if __ANDROID_API__ >= 26
/**
* Allocates a buffer that matches the passed AHardwareBuffer_Desc.
*
@@ -499,6 +501,10 @@ int AHardwareBuffer_sendHandleToUnixSocket(const AHardwareBuffer* buffer, int so
*/
int AHardwareBuffer_recvHandleFromUnixSocket(int socketFd, AHardwareBuffer** outBuffer) __INTRODUCED_IN(26);
#endif // __ANDROID_API__ >= 26
#if __ANDROID_API__ >= 29
/**
* Test whether the given format and usage flag combination is
* allocatable.
@@ -534,6 +540,7 @@ int AHardwareBuffer_isSupported(const AHardwareBuffer_Desc* desc) __INTRODUCED_I
int AHardwareBuffer_lockAndGetInfo(AHardwareBuffer* buffer, uint64_t usage,
int32_t fence, const ARect* rect, void** outVirtualAddress,
int32_t* outBytesPerPixel, int32_t* outBytesPerStride) __INTRODUCED_IN(29);
#endif // __ANDROID_API__ >= 29
__END_DECLS

Some files were not shown because too many files have changed in this diff Show More