Mesa 21.1.0 Release Notes / 2021-05-05 — The Mesa 3D Graphics Library latest documentation

# Mesa 21.1.0 Release Notes / 2021-05-05

Mesa 21.1.0 is a new development release. People who are concerned with stability and reliability should stick with a previous release or wait for Mesa 21.1.1.

Mesa 21.1.0 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.0 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

    0128f10e22970d3aed3d1034003731f94623015cd9797c07151417649c1b1ff8  mesa-21.1.0.tar.xz

## New features

- VK_KHR_workgroup_memory_explicit_layout on Intel, RADV

- DRM format modifiers for AMD.

- VK_KHR_zero_initialize_workgroup_memory on Intel, RADV

- Zink exposes GL 4.6 and ES 3.1

- GL_EXT_depth_bounds_test on softpipe, zink

- GL_EXT_texture_filter_minmax on nvc0 (gm200+)

- GL_ARB_texture_filter_minmax on nvc0 (gm200+)

- GL_ARB_post_depth_coverage on zink

- VK_KHR_copy_commands2 on lavapipe

- lavapipe exposes Vulkan 1.1

- VRS attachment on RADV

- None

## Bug fixes

- No sRGB capable visuals/fbconfigs reported in glx

- Graphics corruption and GPU hang with RADV/LLVM

- old kernels (4.19) support in radv

- Elite Dangerous: Odyssey alpha crashes GPU on launch

- CSGO: Some default variables can cause problems with trust mode

- mesa git started to break wine + UnrealTournament.exe (old dx6 game)

- SuperTuxKart artifacting on RK3399

- [amdgpu]: Golf With Your Friends (431240): ERROR Waiting for fences timed out

- Strange results when trying to read from VK_FORMAT_R64_SFLOAT in compute shader

- anv: dEQP-VK.binding_model.buffer_device_address.set3.depth3.basessbo.convertcheck* slow

- Iris doesn’t support INTEL_performance_query anymore

- RADV: TRUNC_COORD breaks gather operations

- [RADV] corruption in avatar after dying in Heroes of the Storm

- Metro Exodus crashing due to memory overflow

- Sauerbraten shader rendering broken on RV530 (r300g)

- texture glitches on CS:GO on Tiger Lake

- Build fail due to “parameter name omitted” on Gallium Nine

- Non-DRI builds broken by recent cleanups in Mesa core

- Cinnamon core dump after installing latest oibaf mesa build (165a69d2)

- yuv sampler lowering regression

- anv: anv_descriptor_set_binding_layout::array_size overflows u16

- RADV - Vertex explosion in DIRT 5 on RDNA2

- ci: Use renderdoc from debian

- ci: Use debian apitrace in x86 images

- SIGSEV in v3d_emit_gl_shader_state

- Xorg crash due to assertion failure after GPU soft reset

- AMD hevc_vaapi ffmpeg encoding = wrong image width (48px black bar on the right)

- panfrost: Page fault in glamor when running GIMP with X11 on Mali T860

- gallium: python trace scripts need updating

- EGL context creation fails when EGL_KHR_create_context_no_error is mentioned for OpenGL ES 1.1.

- [spirv-fuzz] NIR validation failed after spirv_to_nir: error: nir_block_dominates

- [bisected][regression][i965,iris] dEQP-VK.clipping.user_defined.clip_cull_distance.* failing on multiple platforms

- No Mans Sky GPU hang on Radeon ACO

- radeonsi: prusa-slicer crashes on mesa 21

- anv: dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize16 fails on ICL, TGL

- [radeonsi] Rendering of Firefox UI and website content corrupts randomly and after window geometry changes

- max_binding inconsistency in vulkan descriptor set drivers

- anv: conservative rasterization ext question mark

- Unigine Tropics MSAA failure

- warning: xnack ‘Off’ was requested for a processor that does not support it! [AMD VEGAM with LLVM 12.0.0]

- Compiling some ARB assembly shaders leads to memory corruption

- Specifying an explicit location for an array output messes up transform feedback

- Request for VK_EXT_conservative_rasterization support on Anvil Intel driver for newest DXVK..

- radv: dEQP regressions after addrlib update

- Up to 30% performance drop (GLBenchmark, GfxBench)

- DOTA 2 don’t no longer starts since commit ad241b15a9e517dd4c4e8d7b1d5dab7c3a74b37c

- Clover doesn’t work for kmsro drivers

- aco_tests isel.sparse.clause fails with llvm-12

- util cpu detection breaks on 128-core AMD machines

- util cpu detection breaks on 128-core AMD machines

- Default GL_MAX_TEXTURE_BUFFER_SIZE very small

- intel_nullhw.c:41:38: error: field ‘vtable’ has incomplete type

- ACO error with GCN 1 GPU

- kmsro advertises EGL_MESA_device_software

- d3d12: Use ID3D12Device9::CreateCommandQueue1 when available

- [RADV] Halo: The Master Chief Collection: Crash in Halo Reach Firefight

- freedreno: use SAMPLE_COUNT to autotune sysmem vs gmem

- freedreno: draw_vbo optimizations

- [Bisected][RadeonSI] Mesa crashes when rendering with Eevee in Blender

- subgroupBallotFindMSB() broken in RADV/ACO 20.3.4

- nir_print: util_cpu_detect() is not called prior to _mesa_half_to_float()

- turnip: buffer overflow read on dEQP-VK.ycbcr.query.levels.tess_eval.r8g8b8a8_unorm

- RuneScape crashes GLOn12

- d3d12: Surfaces need to use shareable descriptors

- [RADV][RDNA2] Red Dead Redemption 2 image glitches during menu/overlay menu transitions

- “unknown intrinsic” assertion triggered by multiview shader in non-multiview renderpass in Vulkan on intel

- [i965][g965,ilk,g33,g45][bisected] dEQP-GLES2.functional.fbo.completeness.attachment_combinations.* failures

- radv: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT exposed for VK_FORMAT_R64_SFLOAT

- anv: android building error after commit 4fb6c05

- Compiling mesa with -Dtools=all throws deprecation warnings for intel tools

- DXVK is broken in latest master

- OpenCLOn12: Affinity Photo CL kernels produce invalid DXIL phis

- nir -> tgsi conversion problem

- [i965][g965,ilk,g33][bisected] fp16 enablement causes deqp test failures

- mesa/st: Uniforms are not updated after lowering alpha test

- [i965][bisected][regression] piglit failing primitive-restart-vbo_combined_vertex_and_index on multiple platforms

- [RADV] Nioh 2 - The Complete Edition: “Bloom” on lights

- [RADV] Oblivion: Poor Performance while MSAA Is Enabled

- lima context state bugs with shader compile

- [RADV][BISECTED] The Surge 2 (644830) - In-game assets do not render correctly since 20.3.4.

- amd clang cannot convert ‘llvm::AtomicOrdering’ to ‘llvm::MaybeAlign’ build failure

- [iris][icl,tgl][bisected][regression] failure on piglit.spec.arb_separate_shader_objects.programuniform coverage

- opencl build fail

- anv: dEQP-VK.glsl.builtin_var.fragcoord_msaa.* fails

- Request - depth format feature SAMPLED_IMAGE_FILTER_LINEAR

- “radeonsi: Check pitch and offset for validity.” is a bad commit

- Add OpenCL information to docs/features.txt

- [regression] [bisected] piglit.spec.arb_framebuffer_object.fbo-drawbuffers-none gldrawpixels fails

- RADV: robustBufferAccessUpdateAfterBind is not exposed

- debug build compilation failed: inlining failed in call to ‘always_inline’ ‘_nir_visit_dest_indirect’: indirect function call with a yet undetermined callee

- [RADV/DXVK] Shadow artifacts with different games

- glxgears segfaults with classic i915

- mesa_glthread=true Black Mesa

- freedreno: rendering corruption in dead cells

- ac/rgp: Android building error after commit 12515d6

- d3d12: Assert failures & crashes on latest master

- RADV/ACO - DCC causing garbled output on RX570

- draw.c:121: _mesa_set_draw_vao: Assertion `vao->_EnabledWithMapMode == _mesa_vao_enable_to_vp_inputs(vao->_AttributeMapMode, vao->Enabled)’ failed.

- ANV: Weird jitter in Witcher 1

- RADV - Path of Exile: Shimmering outlines where water and other objects meet

- ANV: Weird jitter in Witcher 1

- ANV: Weird jitter in Witcher 1

- meson: meson-built libraries have inconsistent compatability / current versions compared to older autotools-built libraries

- device select layer breaks other layers

- RADV: Extreme overhead in vkQueueSubmit

- Graphical glitch of popupping missing texture on Mesa version >18.0.5 (Padoka Stable + Unstable/Oibaf/ubuntu-x-swat PPAs)

- [regression] [bisected] dEQP-GLES2.functional.fbo.render.stencil_clear.rbo_rgb5_a1_stencil_index8 fails

- occasional corruption issue with RADV in multiple games, disappears after using amdvlk

- panfrost T860 regression

- OpenGL on GMA4500MHD

- piglit-replay: JUnit file contains wrong links to the tracie dashboard

- R8 texture upload / corruption bug on Radeon RX 5700 XT

- Ambient Occlusion in Two Point Hospital shows black spot artifacts

- freedreno: async background shader compile

- AMD VAAPI encoding has ceased to work

- Rage 2: Visual corruption on in-game menu with ACO.

- ACO doesn’t correctly render map in Borderlands 3 vs. LLVM on 5700 XT

- Invalid shader under panfrost/wayland

- Strange Brigade refuses to load correctly since some recent commits

- GLonD3D12: Crashes and suboptimal fallback

- GLonD3D12: Crashes and suboptimal fallback

- GLonD3D12: Crashes and suboptimal fallback

- [RADV][REGRESSION][BISECTED] radv_GetMemoryFdPropertiesKHR returns no valid memory types for vaapi drmbuf

- anv: vkQueueSubmit with waitSemaphore value of 0 hangs CPU

- ttn: invalid base/range triggering nir_validate assertion

- Sampling with mipmapped HiZ behaves unexpectedly on Gen9

- zink: ARB_map_buffers issues on CI

- u_upload_mgr: assert failure for large uploads

- [RADV][ACO] Overwatch game crash: amd/compiler/aco_insert_exec_mask.cpp: Failed Assertion

- PRIME render offloading broken

- Use out encoding for float immediates

- [RADV] Severe performance drop when exceeding VRAM compared to AMDVLK

- LIBGL_ALWAYS_SOFTWARE=1 picks zink over actual software rasterizers

- crash/assert in fd_set_viewport_states

- RADV: Occlusion query hangs Big Navi GPU

- “mesa: don’t allocate matrices with malloc” cause eglCreateContext problem on android 7.

- Metal Gear Solid V: The Phantom Pain: texture issues and vertex stretches

- [iris and Navi 10] piglit.spec.arb_multi_draw_indirect.arb_draw_elements_base_vertex-multidrawelements -indirect regression

- miscompiled compute shader loop on llvmpipe (and Iris)

- ci: minio caching of arm64 artifacts for bare-metal

- Graphics glitches after upgrade to mesa 20.3 on Khadas VIM3 Pro (Mali G52 GPU)

- glthread crash in _mesa_glthread_upload

- freedreno piglit flakes

- RADV: NonUniform OpArrayLength on SSBO ignores NonUniform.

- Iris driver causing graphics glitch in QEMU spice egl DMA-BUF

- [RADV/ACO] Death Stranding cause a GPU hung (*ERROR* Waiting for fences timed out!)

- [TGL] Elder Scrolls Online misrenders

- [ANV] System hang with GRVK demos

- ci: Fractional deqp runs with valgrind enabled.

- Regression: Segfault in cso_destroy_context() regression in 20.2

- Rendering artifacts in Barn Finders specifically on Radeon Vega

- Graphics regression in Assassins Creed Odyssey

- [ANV] Compilation warnings

- regression in !8152

- [bdw][icl][iris] fails new test `clearbuffer-depth-cs-probe`

- ci: new traces runner needs dashboard links in the job log and junit

- zink: car model corruption with game TORCS

- glGetInternalformati64v(GL_TEXTURE_2D, GL_SR8_EXT, GL_COLOR_ENCODING) returns GL_NONE

- Windows: 32-bit build is broken hard

- ANV: Not handling separate stencil layouts properly

- [Regression][Intel][OpenGL][Bisected] Copying whole 2D array texture failed on latest driver

- turnip: dEQP-VK.tessellation.invariance.outer_triangle_set.quads_fractional_odd_spacing failure

- i915 regressions bisected to “vbo/dlist: use a shared index buffer”

- intel: Chrome OS “hatch” (cometlake) fails on dEQP-GLES31.functional.geometry_shading.layered.render_with_default_layer_cubemap

- radv: dEQP-VK.sparse_resources.* failures on GFX9

- freedreno: rendering corruption in War Robots

- radv: dEQP-VK.sparse_resources.* failures on GFX9

- Mesa 20.3.x crashes pidgin on AMD RX480

- timespec_get used unconditionally / build fails when targeting macOS 10.14 or earlier

- libunwind not located / used on macOS

- libunwind not located / used on macOS

- meson fails to locate libexpat on macOS

- CarX Drift Racing 2 fails to start

- Some games using FNA framework show blank screen

- Intel Vulkan regression of angle_end2end_tests

- Defer lavapipe warning to queue / command / swapchain buffer creation

## Changes

Aaron Watry (2):

- clover: implement CL_IMAGE_ELEMENT_SIZE

- clover: implement CL_IMAGE_NUM_MIP_LEVELS and CL_IMAGE_NUM_SAMPLES

Abhishek Kumar (2):

- intel: change urb max shader geometry for CML GT1

- intel: change urb max shader geometry for KBL GT1

Adam Jackson (66):

- docs: Mark some non-core zink extensions complete

- docs: Mark some ES3 zink features complete

- egl: Fix error string returned by eglQueryDeviceAttribEXT

- zink: Factor out instance setup a bit more

- osmesa: Pacify MSVC in the test code

- glx: Fix GLX_SGI_video_sync for the no-current-drawable case

- nir: Silence a warning at -Og

- softfloat: Silence a warning at -Og

- glsl: Silence a warning at -Og

- glsl: Silence some warnings at -Og

- glsl: Silence a warning at -Og

- loader: Silence a warning at -Og

- gallivm: Silence a warning at -Og

- nir/ttn: Silence some warnings at -Og

- vl: Silence a warning at -Og

- gallivm: Silence a warning at -Og

- nouveau: Silence some warnings at -Og

- nouveau: Silence a warning at -Og

- xlib: Fix build regression since 99e25d183d9

- gallium/xlib: Partial fix for glXCopySubBufferMESA

- mesa: Store depth bounds test bounds as GLclampd

- softpipe: Fix depth comparison with float Z formats

- softpipe: Implement GL_EXT_depth_bounds_test

- docs: Document GL_EXT_depth_bounds_test

- zink: Enable GL_EXT_depth_bounds_test

- zink: more and better debug printfs

- zink: Fix a thinko in instance setup

- zink: Wire up ARB_post_depth_coverage

- glx: Pull use_x_font out of the context vtable

- glx: Pull get_proc_address out of the context vtable

- glx: Remove windows’ stub {bind,release}_text_image context hooks

- glx/drisw: Implement WaitX and WaitGL

- dri: Explicitly handle all the config attributes

- dri: Fold attribMap into the code

- mesa: Remove misc pbuffer attributes from struct gl_config

- mesa: Remove the texture-from-pixmap state from struct gl_config

- mesa: Remove transparency state from struct gl_config

- mesa: Remove unused gl_config::level

- mesa: Remove the pretense of aux buffer support

- mesa: Stop tracking visual rating in gl_config

- mesa: Remove redundant gl_config::sampleBuffers

- ci: Bump the llvmpipe test timeout to 240 seconds

- mesa/st: Remove unused ST_ATTACHMENT_SAMPLE

- mesa/st: Check for successful framebuffer allocation in st_api_make_current

- gallium: Remove curious st_visual::no_config

- radeon: Exchange one curious idiom for another in radeonMakeCurrent

- mesa: Remove unused _mesa_create_framebuffer

- mesa: Make _mesa_initialize_visual return void

- mesa: Remove unused gl_config::mutableRenderBuffer

- mesa: gl_config::rgbBits should count alphaBits too

- dri: Don’t tie the accum buffer’s alpha-ness to the color buffer’s

- glx: Stop pretending to validate the pbuffer fbconfig attributes

- glx: Don’t downgrade the visual caveat from the server

- glx: Downgrade aux-buffer-ful fbconfigs

- glx: Downgrade tfp mipmap-capable fbconfigs

- glx: Downgrade sRGB-ful fbconfigs

- dri: Use __DRI_BUFFER_COUNT consistently internally

- glx: Default sRGBCapable in the same place as the other config attribs

- glx: Clean up fbconfig attribute handling

- glx: Remove some #if 0’d DRI config attribute fetch

- glx: Don’t pointlesly add -D_REENTRANT to libGL’s cflags

- glx: Move {Bind,Release}TexImage from context to screen vtable

- glx: Be more robust against null fbconfigs

- glx: Lift sending the MakeCurrent request to top-level code

- Revert “glx: Lift sending the MakeCurrent request to top-level code”

- gallium/xlib: Fix for recent gl_config changes

Adrian Ratiu (1):

- docs: docker: minor stale documentation fix

Alejandro Piñeiro (36):

- v3dv/pipeline: enable lower_add_sat NIR option

- v3d/compiler: enable lower_add_sat NIR option

- v3dv/descriptor: assert CrateDescriptorPool receives valid count values

- v3dv: drop v3dv_resource definition

- v3dv: properly handle two different binding points for cmd_buffers

- v3dv: move to subclassing instance/physical device

- v3dv: remove reference to v3dv_instance on v3dv_physical_device

- v3dv: port to using common dispatch code.

- v3dv: support for depthBiasClamp

- v3dv/device: clarify that we can’t expose textureCompressionBC

- v3dv/formats: expose support for BC1-3 compressed formats

- v3dv/meta_copy: get tlb compatible BC compressed formats for copies

- v3dv/descriptor_set: don’t free individual set if not allowed

- v3dv: avoid some maybe-uninitialized warnings

- v3dv/pipeline_cache: add more details when dumping debug info

- v3dv/pipeline: remove pregenerate_variant

- v3dv/pipeline: remove pipeline->use_push_constants

- broadcom/compiler: add local_size in v3d_compute_prog_data

- broadcom/compiler: add driver_location_map at vs prog data

- v3dv/pipeline: use driver_location_map instead of nir utilities

- v3dv/pipeline: move topology to pipeline

- v3dv/pipeline: remove compiled_variant_count field

- v3dv/pipeline: remove v3d_key from shader_variant and pipeline stage

- v3dv: define broadcom shader stages

- v3dv/pipeline: use broadcom_shader_stage as pipeline/variant stage type

- v3dv/pipeline: try to get the shader variant directly from the cache

- v3dv/pipeline: don’t create a variant if compilation failed

- v3dv/pipeline: compute sha1 for no-op fragment shaders correctly

- v3dv/device: avoid unused-result warning with asprintf

- v3dv: Add support for the on-disk shader cache

- v3dv/cmd_buffer: return early for draw commands if there is nothing to draw

- v3dv: define a default attribute values with float type

- vulkan: track number of bindings instead of max binding for CreateDescriptorSetLayout

- v3dv/device: do not compute per-pipeline limits multiplying per-stage

- v3dv/device: fix and cleanup v3dv limits

- v3dv/pipeline: reduce descriptor_map size

Alexander Kapshuk (1):

- frontends/va/image: Eliminate repetitive code on error paths

Alexander Shi (1):

- mesa: texparam: Add a clamping macro to handle out-of-range floats returned as integers.

Alexander von Gluck IV (1):

- egl/haiku: Fix ConfigID naming inline with mesa

Alyssa Rosenzweig (345):

- pan/bi: Fix assertion

- pan/bi: Pipe scratch_size in from NIR

- pan/bi: Fix 64-bit SSBO addresses

- pan/bi: Fix RA of node 0

- pan/bi: Fix printing of node 0

- panfrost: Fix TLS sizing if cores are missing

- panfrost: Allow waiting on slots 6/7 during preload

- pan/bi: Add internal debug flag

- pan/bi: Validate format 12 tuple count in disasm

- pan/bi: Print FAU index in verbose mode

- pan/bi: Refactor PC-relative printing

- pan/bi: Lint for infinite loops

- pan/bi: Print disasm/stats with DEBUG=internal

- pan/bi: Fix IDLE register mode packing

- pan/bi: Fix staging register packing

- pan/bi: Fix dependency wait calculation

- pan/bi: Fix M1/M2 decoding in disassembler

- pan/bi: Pull out bi_count_read_registers helper

- pan/bi: Move bi_next_clause to bir.c

- pan/bi: Pass through wait_{6, 7} flags

- pan/bi: Add dead branch elimination pass

- pan/bi: Add “soft” mode to DCE

- pan/bi: Add bi_{before,after}_clause cursors

- pan/bi: Add bi_foreach_clause_in_block_rev

- pan/bi: Add bi_foreach_instr_in_tuple helper

- pan/bi: Add bi_foreach_instr_in_clause iterators

- pan/bi: Add destination iterator macro

- pan/bi: Don’t open code bi_foreach_dest

- pan/bi: Permit multiple destinations in RA

- pan/bi: Add interference per clause

- pan/bi: Implement spilling at the clause-level

- pan/bi: Don’t fill garbage

- pan/bi: Add CUBEFACE pseudoinstruction

- pan/bi: Print multiple destinations if needed

- pan/bi: Move init_builder to common code

- pan/bi: Add “word equivalence” relation for index

- pan/bi: Stub out scheduler unit test

- pan/bi: Factor nir_function_impl out of the context

- pan/bi: Add bi_can_{fma, add} predicates

- pan/bi: Annotate ISA.xml with ‘last’ parameter

- pan/bi: Pipe last flag into opcode tables

- pan/bi: Add bi_must_last predicate

- pan/bi: Add bi_must_message predicate

- pan/bi: Label table instructions

- pan/bi: Emit branch and table bits in opcode table

- pan/bi: Add various read predicates

- pan/bi: Unit test bi_can_{fma, add}

- pan/bi: Test bi_must_last

- pan/bi: Test bi_must_message

- pan/bi: Test read predicates

- pan/bi: Move bi_constants to bifrost.h

- pan/bi: Use canonical terminology for tuple

- pan/bi: Use enum bifrost_message_type

- pan/bi: Clarify tuple comment

- pan/bi: Amend misleading comment

- pan/bi: Pack multiple tuples in-memory

- pan/bi: Add clause encodings as a table

- pan/bi: Move bi_packed_tuple to compiler.h

- pan/bi: Add bi_pack_literal

- pan/bi: Add bi_pack_upper

- pan/bi: Add bi_pack_tuple_bits

- pan/bi: Add bi_pack_sync

- pan/bi: Add tuple/embedded constant pack

- pan/bi: Add subword 5/6 pack

- pan/bi: Add subword 4 or 7 pack

- pan/bi: Add pack_format helper

- pan/bi: Calculate pos for constant packing

- pan/bi: Pack multiple tuples per clause

- pan/bi: Add packing unit test group

- pan/bi: Test pack_literal

- pan/bi: Test pack_upper

- pan/bi: Test pack_tuple_bits

- pan/bi: Test pack_sync

- pan/bi: Add packing format tests

- pan/decode: Be explicit when printing invocations

- pan/decode: Remove tiler size checks

- pan/decode: Remove dependency of decoder on the encoder

- pan/decode: Deduplicate SFBD blend printing

- pan/decode: Deduplicate shader property printing

- pan/decode: Remove unused MEMORY_PROP macro

- pan/decode: Simplify tiler printing

- pan/decode: Remove pandecode_prop

- pan/decode: Remove unused disasm stats

- pan/decode: Remove mesa header dependencies

- pan/mdg: Drop unused stage parameter to disassembler

- pan/decode: Remove tile range validation

- pan/decode: Prefer sizeof to ARRAY_SIZE for char

- nir/lower_io: Fix grammar errors

- pan/bi: Fix NULL deref with empty shader

- pan/bi: Add side_effects helper

- pan/bi: Respect side effects in DCE

- pan/bi: Implement AXCHG

- pan/bi: Implement ACMPXCHG

- pan/bi: Add bi_fmul_f32 convenience method

- pan/bi: Fix FLOG_TABLE modifier handling

- pan/bi: Lower frcp to Newton-Raphson

- pan/bi: Lower frsq to Newton-Raphson

- pan/bi: Lower FEXP2 with a table

- pan/bi: Lower flog2 to a table and polynomial

- pan/bi: Rename NO_FP32_TRANSCENDENTALS quirk

- pan/bi: Fix bi quirks detection

- pan/bi: Lower FP32 transcendentals where required

- pan/bi: Lower transcendentals on G71

- pan/bi: Print program size in shader-db

- pan/bi: Cleanup terminal block check

- pan/bi: Dead code eliminate per-channel

- pan/bi: Include ATEST datum in the instruction

- pan/bi: Add scheduler data structures

- pan/bi: Add cubeface lowering

- pan/bi: Flatten block lists

- pan/bi: Stub worklist routines

- pan/bi: Add constant count estimates to scheduler

- pan/bi: Add FAU update helper

- pan/bi: Add bi_tuple_is_new_src

- pan/bi: Add bi_count_succ_reads helper

- pan/bi: Validate reads_t

- pan/bi: Add T0/T1 constraint check

- pan/bi: Add writes_reg predicate

- pan/bi: Add bi_instr_schedulable predicate

- pan/bi: Choose instructions to schedule

- pan/bi: Destructively schedule a single instruction

- pan/bi: Add passthrough register rewriting helper

- pan/bi: Extract bi_ec0_packed helper

- pan/bi: Add bi_foreach_instr_and_src_in_tuple

- pan/bi: Move bi_constant_field to bifrost.h

- pan/bi: Add pcrel_idx to bi_clause

- pan/bi: Derive M0 from pcrel_idx while packing

- pan/bi: Add trivial rewrite helpers

- pan/bi: Add constant to passthrough rewrite

- pan/bi: Add constant state constructor

- pan/bi: Add constant merging routines

- pan/bi: Add constant modifier handling

- pan/bi: Schedule blocks

- pan/bi: Switch to new scheduler

- pan/bi: Remove old FAU assignment code

- pan/bi: Remove older cube map lowering

- pan/bi: Add nosched debug option

- pan/bi: Fix ‘last tuple’ for terminal-NOP clauses

- pan/bi: Fix 2-write pseudo op scheduling

- pan/mdg: Fix multithreaded shader-db

- pan/mdg: Add MIDGARD_MESA_DEBUG=inorder option

- pan/mdg: Optimize UBO offset calculations

- pan/mdg: Set lower_uniforms_to_ubo

- panfrost: Fix race condition in UBO mapping to CPU

- panfrost: Respect buffer_offset when mapping to CPU

- panfrost: Move sysvals to dedicated UBO

- panfrost: Don’t truncate uniform_count

- panfrost: Add UBO push data structure

- panfrost: Push uniforms required by the program

- panfrost: Set FAU count based on program->push

- panfrost: Don’t store uniform_count on Midgard

- pan/mdg: Update UBO promotion comment

- pan/mdg: Push uniforms based on UBO analysis

- pan/bi: Fix multithreaded shader-db

- pan/bi: Add bi_replace_index helper

- pan/bi: Add bi_is_ssa helper

- pan/bi: Print FAU uniforms in IR

- pan/bi: Generalize bi_update_fau with fast zero

- pan/bi: Handle modifiers in rewrite_fau_to_pass

- pan/bi: Rework FAU lowering

- pan/bi: Simplify derivative lowering

- pan/bi: Add SSA-based scalar copy propagation

- pan/bi: Push UBOs on Bifrost

- panfrost: Enable ES3 conformant floating-point

- compiler, nir: Add and set barrier metadata

- panfrost: Set barriers flag for compute shaders

- panfrost: Pass is_blit flag around

- pan/bi: Skip ATEST for colour blit shaders

- panfrost: Fake shader images for bifrost+deqp

- pan/bi: Fix jumps to terminal block again

- pan/bi: Fix empty shader handling

- nir: Add sample_positions_pan intrinsic

- pan/decode: Cleanup sample locations decode

- pan/decode: Only print local storage for vertex jobs

- panfrost: Preload sample mask if needed

- panfrost: Add sample positions sysval

- panfrost: Push sample positions sysval for Midgard

- panfrost: Refactor sample shading state

- panfrost: Respect info.fs.uses_sample_shading

- panfrost: Add panfrost_sample_pattern helper

- panfrost: Set tiler descriptor sampler pattern

- panfrost: Generalize MSAA handling

- panfrost: Don’t set REQ_MSAA in pan_mfbd

- panfrost: Don’t use PAN_REQ_MSAA in SFBD

- panfrost: Remove PAN_REQ_MSAA

- panfrost: Remove PAN_REQ_DEPTH_WRITE

- panfrost: Remove batch_is_scanout

- panfrost: Set sample count/pattern for tiler FBD

- panfrost: Upload sample positions on device init

- panfrost: Use sample location LUT

- panfrost: Ensure open_device has pandecode initialized

- panfrost: Advertise MSAA 8x and 16x

- panfrost: Implement get_sample_position

- panfrost: Overhaul sysval handling

- panfrost: Add MULTISAMPLED sysval

- pan/mdg: Assert on bad 64-bit swizzle in disassembly

- pan/mdg: Remove unused pack_unorm_4x8 lowering

- pan/mdg: Lower bitfield instructions

- pan/mdg: Rename bitcount8 to popcnt, fixing the unit

- pan/mdg: Implement uclz

- pan/mdg: Lower ufind_msb, poorly

- pan/mdg: Stub load_barycentric_sample

- pan/mdg: Lower stores from helpers

- pan/bi: Remove redundant TEXC opcode check

- pan/bi: Implement texture gathers

- pan/bi: Lower bitfield inserts/extracts

- pan/bi: Implement bitfield_reverse

- pan/bi: Implement ufind_msb

- pan/bi: Lower ifind_msb

- pan/bi: Fix gl_SampleID read

- pan/bi: Implement load_sample_mask_in

- pan/bi: Implement nir_intrinsic_load_sample_positions_pan

- pan/bi: Decouple sysval loading from NIR

- pan/bi: Implement coverage mask updates

- pan/{mdg, bi}: Lower load_helper_invocation

- pan/{mdg, bi}: Lower load_sample_pos

- panfrost: Simplify bind_compute_state

- panfrost: Remove stale TODOs

- panfrost: Assert on indirect compute shaders

- panfrost: Advertise SAMPLE_SHADING

- panfrost: Bump max SSBO count

- panfrost: Bump advertised ESSL feature level

- panfrost: Advertise OES_standard_derivatives

- docs/features: Mark more TBO exts done on panfrost

- docs/features: Mark some ES3.1 done on Panfrost

- docs/features: Mark sample shading done on Panfrost

- docs/features: gl_HelperInvocation on Panfrost

- nir: Fix grammar error

- panfrost: Fix uniform_count on Midgard

- pan/bi: Stub scoreboarding

- pan/bi: Implement barriers

- pan/decode: Fix tiler printing on Bifrost

- pan/decode: Pretty print 22-bit pixel formats

- pan/decode: Disambiguate border colours

- panfrost: Label groups in GenXML

- panfrost: Track coverage, early fragment tests

- panfrost: Flesh out pixel kill / zs update

- panfrost: Handle PIPE_FORMAT_NONE as ‘constant’

- panfrost: Flesh out allow_forward_pixel_to_kill check

- panfrost: Export bifrost_get_blend_desc with type size

- panfrost: Add RT conversion sysval

- panfrost: Fix NULL deref for an empty frag shader

- panfrost: Spell fix

- panfrost: Take panfrost_dev for AFBC selection

- panfrost: Set border colour on Bifrost sampler

- panfrost: Remove useless check

- pan/bi: Fix RA of node 0 again

- pan/bi: Don’t inline 64-bit constants

- pan/bi: Fix LD_GCLK staging count

- pan/bi: Don’t read alpha out of bounds

- pan/bi: Allow @rNULL with tied operands

- pan/bi: Add SEG_ADD.i64 pseudoinstruction

- pan/bi: Add 32-bit atomic pseudoinstruction

- pan/bi: Lower atomic pseudo-instructions

- pan/bi: Extract bi_atom_opc from NIR intrinsic

- pan/bi: Add ATOM_C1 promotion check

- pan/bi: Handle computational atomics

- pan/bi: Materialize *DTSEL_IMM in the scheduler

- pan/bi: Implement image_atomic_exchange

- pan/bi: Implement image_atomic_comp_swap

- pan/bi: Implement shader_clock intrinsic

- pan/bi: Fix blend shaders using LD_TILE with MRT

- pan/bi: Flesh out LD_TILE emit

- pan/bi: Elucidate slot 6/7 operation

- pan/bi: Preload sample ID for sample shading

- pan/bi: Implement interpolateAtSample

- pan/bi: Add imm_f16 helper

- pan/bi: Implement interpolateAtOffset

- pan/bi: Allow dynamically uniform tex indices

- pan/bi: Use explicit move even for RT#0 of MRT

- panfrost: Comment on state of ARB_shader_clock

- panfrost: Advertise FRAMEBUFFER_NO_ATTACHMENTS

- docs/features: Mark atomics/images done on Bifrost

- panfrost/ci: Mark flaky test

- gallium/tessellator: Remove XBOX 360 code

- gallium/tessellator: Remove unused includes

- gallium/tessellator: Rename D3D11 defines

- pan/bi: Fix more jumps to terminal blocks

- pan/bi: Optimize out redundant jumps to #0x0

- pan/bi: Fix elimination of repeated branches

- panfrost: Fix infinite loop spilling

- panfrost: Fix NULL dereference adding cbuf to batch

- panfrost: Remove redundant NULL check

- panfrost: Fix NULL deref in pan_mfbd.c

- panfrost: Fix NULL derefs in pan_cmdstream.c

- panfrost: Fix NULL deref in pan_sfbd

- panfrost: Raise TEXTURE_BUFFER_OFFSET_ALIGNMENT

- panfrost: Hide MSAA 8x/16x support

- panfrost: Fix UNORM 16 rendering

- panfrost: Reinterpret format for reload blits

- panfrost: Fix typo in midgard.xml

- panfrost: Don’t advertise OES_copy_image

- pan/bi: Use nir_opt_sink/move for constants

- pan/bi: Reduce liveness calculations in DCE

- pan/bi: Inline `bytemask of read components`

- pan/bi: Mark branches as having side effects

- pan/bi: Mark DISCARD as having side effects

- pan/bi: Make bi_writemask take a destination

- pan/bi: Allow spilling with multiple destinations

- pan/bi: Annotate instructions by destination count

- pan/bi: Adapt builder to dest count

- pan/bi: Remove unused definitions

- pan/bi: Do copyprop in linear-time

- panfrost/lcra: Fix constraint counting

- pan/bi: Use replace_index in more places

- pan/bi: Allow negating constants

- pan/bi: Implement fsin/fcos

- pan/bi: Mark message-passing sources/dests live

- pan/bi: Set clause_state.message conservatively

- pan/bi: Treat +DISCARD.f32 as message-passing

- nir/lower_viewport_transform: Allow geom/tess

- pan/bi: Implement u{add, sub}_sat

- nir: Unify memory atomics

- meson: Remove kmsro from gallium-drivers

- pan/bi: Document register conventions

- pan/bi: Add bi_foreach_block_rev

- pan/bi: Handle 16-bit blend sr_count

- pan/bi: Only run copyprop once

- pan/bi: Only run DCE once

- pan/bi: Remove TODO: RA warnings

- pan/bi: Remove stale todo/assert

- panfrost: Deduplicate UBO count assignment

- panfrost: Deduplicate Bifrost fau_count

- panfrost: Only check blend work count on midgard

- vulkan: Deduplicate mesa stage conversion

- pan/bi: Enable all nir_opt_move/sink optimizations

- pan/bi: Split writemasks for memory stores

- pan/bi: Lower large arrays to scratch

- pan/bi: Add bi_swz_16 helper

- pan/bi: Optimize MKVEC.v2i16 generation

- pan/bi: Lower swizzles

- pan/bi: Fill in some more conversions

- pan/bi: Generalize f2i16, f2u16

- pan/bi: Remove conversion lowering

- nir: Add nir_type_convert

- nir: Add {i2f, u2f, f2i, f2u} helpers

- nir/lower_idiv: Convert to lower_instructions

- nir/lower_idiv: Factor out numer/denom load

- nir/lower_idiv: Add 8-bit and 16-bit lowering path

- pan/bi: Determine block successors correctly

- panfrost: Fix AFBC body_size for shared resources

- panfrost: Enable AFBC buffer sharing

- nir: Add varying precision linking helper (v2)

- docs: Add some notes on building for macOS

- panfrost: Fix formats converting uninit from AFBC

Andreas Bergmeier (1):

- v3dv: Output a message if file open fails in physical_device_init

Andres Gomez (29):

- ci: recover tracie dashboard URLs for failing traces

- ci: correct the trace image URLs in the piglit summary

- ci: make piglit runner less noisy and show a better failure message

- ci: clean paths used in the piglit runner

- ci: correct piglit’s HTML summary location for artifacts upload

- ci: make sure piglit’s artifacts are not overwritten

- ci: correct artifacts location for piglit’s runner messages

- ci: tracie dashboard URLs only in the failure after the testcase

- ci: piglit runner colors diff output on failures

- ci: remove pytest since we don’t need it any more

- ci: only install piglit dependencies when installing piglit

- ci: build gfxreconstruct v0.9.5

- ci: add libdrm to the x86_test-vk container

- .mailmap: colapse duplicates for Timothy Arceri

- .mailmap: resolve duplicates for Icecream95

- .mailmap: resolve duplicates for Christopher Li

- .mailmap: resolve duplicates for Emmanuel Vadot

- .mailmap: resolve duplicates for Indrajit Das

- .mailmap: resolve duplicates for James Xiong

- .mailmap: resolve duplicates for Jan Zielinski

- .mailmap: resolve duplicates for Lin Johnson

- .mailmap: resolve duplicates for Mark Menzynski

- .mailmap: resolve duplicates for Matthias Hopf

- .mailmap: resolve duplicates for Matthias Lorenz

- .mailmap: resolve duplicates for Maya Rashish

- .mailmap: resolve duplicates for Mun Gwan-gyeong

- .mailmap: resolve duplicates for Satyeshwar Singh

- .mailmap: resolve duplicates for Yogesh Mohan Marimuthu

- .mailmap: add an alias for Eleni Maria Stea

Andrew McMahon (1):

- util: add mesa_glthread for Half Life 2 and Black Mesa.

Andrii Simiklit (7):

- st/mesa: fix pbo upload/download for arrays of textures with only 1 layer

- iris: don’t emit IRIS_DIRTY_VF depending on trash in restart_index

- mesa: ensure parameter list capacity before associating uniform storage

- glsl/linker: Fix xfb stride alignment for buffers containing 64bit types

- gitlab-ci: remove fixed tests

- spirv: repair ssa defs for switchs with only default case

- nir/spirv: remove unused fields from `vtn_builder`

Antonio Caggiano (4):

- zink: check shader stencil output

- zink: support stencil-export

- zink: fix destroy batch

- ci: Use lock file to build deqp-runner

Anuj Phogat (32):

- intel/anv: Fix condition to set MipModeFilter for YUV surface

- intel/anv: Fix condition for planar yuv surface

- intel: Rename files with gen_ prefix in common code to intel_

- intel: Rename “gen_” prefix used in common code to “intel_”

- intel: Fix broken alignment due to gen_ prefix renaming

- intel: Rename “GEN_” prefix used in common code to “INTEL_”

- i965: Remove blank line at EOF

- i965: Rename files with “intel_” prefix to “brw_”

- intel/isl: Drop intel_ prefix in function names

- anv: Remove redundant #if checks

- intel: Remove GEN_IS_HASWELL macro

- intel: Simplify version checks involving haswell

- intel: Remove GEN_IS_G4X macro

- intel: Simplify few version checks involving G4X

- intel: Rename GEN_VERSIONx10 macro to GFX_VERx10

- intel: Rename GEN_GEN macro to GFX_VER

- intel: Rename ISL_DEV_GEN to ISL_GFX_VER

- intel: Rename genx10 field in gen_device_info struct to verx10

- intel: Rename gen field in gen_device_info struct to ver

- intel: Rename genx keyword in filenames to gfxx

- intel: Rename GENx prefix in macros to GFXx in build files

- intel: Rename GENx prefix in macros to GFXx in source files

- intel: Rename genx keyword to gfxx in build files

- intel: Rename genx keyword to gfxx in source files

- intel: Rename Genx keyword to Gfxx

- intel: Rename GENx keyword to GFXx

- intel: Rename IS_GEN* macros to IS_GFX_VER*

- intel: Make line wrapping changes due to IS_GFX_VER_BETWEEN

- intel: Remove unused MAKE_GEN macro

- intel: Rename GEN_{ALL, LT, ..} macros to GFX_{ALL, LT, ..}

- intel: Rename GEN:BUG:### to Wa_###

- intel: Rename WA_### to Wa_###

Arcady Goldmints-Orlov (14):

- v3dv: Fix uninitialized variable warnings

- nir: add more intrinsics to divergence analysis

- nir: handle v3d intrinsics in divergence analysis

- nir: store the results of divergence analysis on loops

- broadcom/compiler: Use ANYA for branches in uniform ifs

- broadcom/compiler: Emit uniform loops using uniform control flow

- broadcom/compiler: Enable PER_QUAD TMU access only in uniform control flow

- v3dv: Only lower local arrays of size up to 2 to if-chains

- broadcom/compiler: improve generation of if conditions

- Revert “broadcom/compiler: improve generation of if conditions”

- v3dv: initialize render_fd at the top of physical_device_init

- broadcom/compiler: Add a v3d_compile argument to vir_set_[pu]f

- broadcom/compiler: Skip bool_to_cond where possible

- broadcom/compiler: Merge instructions more efficiently

Arno Messiaen (1):

- lima/ppir: increase usage of pipeline regs

Axel Davy (76):

- st/nine: Reduce system memory allocated by D3DUSAGE_AUTOGENMIPMAP

- st/nine: Do not allow depth buffer render targets

- st/nine: Clamp GetAvailableTextureMem

- st/nine: Unmap buffers after full unlock

- st/nine: Track formats compatible with FETCH4

- st/nine: Implement experimental FETCH4

- st/nine: Enable DF24 support

- st/nine: Add new debug and error checks

- st/nine: Refactor ht_guid_delete

- st/nine: Protect *PrivateData also for Volumes

- st/nine: Fix leak at device destruction

- driconf: Rename csmt_int back to csmt_force

- st/nine: Simplify checks for driconf options

- st/nine: Add new function to know if we are the worker

- st/nine: Add RAM memory manager for textures

- st/nine: Use the texture memory helper

- st/nine: Control the memfd virtual limit

- st/nine: Add driconf option to limit texture memory

- st/nine: Set default dynamic_texture_workaround to true

- st/nine: Check memfd_create support

- st/nine: Fix compilation issue in nine_debug

- st/nine: Optimize EndScene

- st/nine: Implement SYSTEMMEM buffers same as MANAGED

- st/nine: Refactor DrawPrimitiveUp

- st/nine: Optimize DrawPrimitiveUp

- st/nine: Use correct bind flag at buffer creation

- gallium/util: Add new u_box helpers

- st/nine: Track pending MANAGED buffer uploads

- st/nine: Optimize dynamic systemmem buffers

- st/nine: Force DYNAMIC SYSTEMMEM for sw vertex processing

- st/nine: Always use DYNAMIC with SYSTEMMEM

- st/nine: Use stream_uploader for bad cases of systemmem

- st/nine: detect worker threads syncs for systemmem

- radeonsi: Limit the size of the in-memory shader cache

- radeonsi: fix leak when the in-memory cache is full

- st/nine: Disable fpu exceptions during init

- st/nine: Fix crash on texture creation failure

- st/nine: Fix cubetexture early destruction

- st/nine: Add missing breaks

- st/nine: Fix invalid NULL check

- st/nine: Prevent use after free on dtor

- st/nine: Fix reading invalid pointer

- st/nine: Fix compilation warnings

- st/nine: Fix read outside bounds for some textures

- st/nine: Fix value of pipe_draw_info’s max_index vertex

- st/nine: Prevent negative reference count

- st/nine: Improve Surface GetContainer

- st/nine: Fix alpha to coverage states

- st/nine: Enable multisampling also without depth buffer

- st/nine: Handle D3DFMT_NULL multisampling

- st/nine: Remove errors on unsupported lock flags

- st/nine: Increase number of constants of vs1_sw

- st/nine: Ignore swizzle on samplers

- st/nine: Clamp max_anisotropy

- st/nine: Refuse depth buffers as rendertargets

- st/nine: Fix ps ff BLENDTEXTUREALPHA

- st/nine: Fix ff has_aNrm computation

- st/nine: Catch redundant scissor and viewport settings

- st/nine: Pseudo implement set/getClipstatus

- st/nine: Improve Reset on Ex devices

- st/nine: Pseudo implement Create*Ex functions

- st/nine: Complete *Ex stubs

- st/nine: Add logging to Ex function

- st/nine: Have NOOVERWRITE win over DISCARD

- st/nine: Do not memset buffers twice

- st/nine: Add fallback for YUV formats

- st/nine: Use PIPE_MAP_ONCE for persistent buffers

- st/nine: Disable buffer_upload when csmt is off

- st/nine: Allow to override the vram size

- st/nine: Make it optional to use a sw renderer

- st/nine: Lower texture_memory_limit default

- st/nine: Bump num of backbuffers for tearfree thread_submit

- st/nine: Improve performance with thread_submit

- st/nine: Default thread_submit to true

- st/nine: Default tearfree_discard to true

- st/nine: Fix compilation error on non-x86 platforms

Bas Nieuwenhuizen (87):

- ac/surface: Fix GFX9 sparse mip info.

- radv: Do not use a pipe offset for aliased sparse images.

- radv: Add a trivial implementation of VK_KHR_deferred_host_operation

- radv: Use stricter HW resolve swizzle compat check.

- radv: Expose VK_KHR_workgroup_memory_explicit_layout.

- radv: Do not hash vk_object_base in descriptor set layout.

- amd/common: Add modifier size helper.

- radv: Extract DCC format support handling.

- radv: Use the surface offset from ac_surface instead of a plane offset.

- radv: Don’t relayout images with modifiers.

- radv: Add format modifier format queries.

- radv: Add drm format modifier queries.

- radv: Add image layout with drm format modifiers.

- radv: Enable DRM format modifiers on GFX9+.

- radv: Enable modifiers with the WSI.

- radv: Add modifier fails for CTS bug.

- radv: Fix assert.

- radv: Implement VK_KHR_zero_initialize_workgroup_memory.

- radv: Improve spilling on discrete GPUs.

- radv: Fix vram override with fully visible VRAM.

- radv: Remove custom icd json generation.

- radv: Define supported extensions in C.

- radv: Ignore WC flags for VRAM.

- radv: Determine swizzles correctly.

- radv: Add plane width/height helpers.

- radv: Use u_format helpers when possible.

- radv: Remove VK_SWIZZLE_*.

- radv: Do no use vk_format for getting divisors.

- radv: Do not use generated table for plane formats.

- radv: Stop checking for MULTIPLANE layout.

- radv: Stop using plane_count.

- radv: Only support format with a PIPE_FORMAT.

- radv: Start using util_format_description for everything.

- radv: Remove the format table.

- radv: Remove vk_format_has_stencil/depth helpers.

- radv: Properly handle modifier import failure.

- radv: Do pipe misalignment check per plane.

- radv: Don’t use dedicated memory info to indicate sharing.

- vulkan/device_select: Stop using device properties 2.

- amd/common: constify ac_surface_set_umd_metata.

- radv: Handle UMD metadata on import.

- radv: Use shared code for setting opaque metadata.

- amd/common: Add retile map size helper.

- radv: Implement initialization of displayable DCC.

- radv: Implement displayable DCC retiling.

- radv: Add DCC info to the metadata.

- radv: Use ac_surface DCC settings for shareable images.

- radv: Enable displayable DCC.

- radv: Disable displayable DCC for GFX8 properly.

- ac/rgp: Only report double the prims per clock on GFX10.

- radv: Expose robustBufferAccessUpdateAfterBind correctly.

- frontends/va: Use correct size for secondary planes.

- radv: Enable linear sampling for depth textures.

- radv: Add sam option.

- radv: Add nodisplaydcc option.

- radv: Use correct DCC compressed block size for sampling.

- radv: Dedupe winsyses per device.

- radv: Allow extra planes for DCC.

- radv: Enable sharing with DCC with modifiers.

- radv: Ensure we never decompress or FCE read-only textures.

- radv: Allow DCC for images with modifiers that are read-only.

- radv: Use 8x8 meta compute workgroups.

- radv: Enable DCC for image stores on GFX10.

- radv: Only set WRITE_COMPRESS_ENABLE on supported HW.

- vulkan: Fix descriptor set creation with zero bindings.

- lavapipe: Free sorted descriptor array.

- zink: Remove initialization of some arrays

- zink: Only set the needed number of scissors.

- radv: Flush caches for shader read operations.

- nir: Fix shader calls with nir_opt_dead_write_vars.

- nir: Extract shader_info->cs.shared_size out of union.

- nir: Remove nir_shader->shared_size.

- nir: Do not reset shared_size in nir_lower_io.

- radv: Support DCC without a fast clear value.

- radv: Support DCC without DCC/FCE predicates.

- radv: Add retiling for foreign queues.

- radv: Support DCC modifiers fully.

- radv: Add clang-format for AMD code.

- radv: Format.

- radv: Update editorconfig.

- radv: Re-enable retiling.

- radv: Refactor cs_domain to be a winsys function.

- radv: Use VRAM cmdbuffers in more situations.

- radv/winsys: Remove use_local_bos

- radv: Fix memory leak on descriptor pool reset with layout_size=0.

- amd/common: Use cap to test kernel modifier support.

- radv: Only require DRM 3.23.

Bastian Beranek (1):

- glx: Assign unique serial number to GLXBadFBConfig error

Ben Niu (1):

- util: When building ‘ARM64EC’, don’t use x64 intrinsics which need to be emulated

Benjamin Tissoires (3):

- CI: windows: augment the timeout of building the windows container

- CI: windows: split the layers to meet new registry requirements

- CI: windows: Force using LLVM 12

BillKristiansen (1):

- d3d12: fix for upside-down multisample stencil blit

Boris Brezillon (91):

- panfrost: Don’t skip the test with a 4k shader

- panfrost: Fix tiler job injection (again)

- panfrost: Get rid of IS_BIFROST

- panfrost: Don’t memset the last attribute buffer entry twice

- panfrost: Only allocate the extra attribute buffer entry on Bifrost

- panfrost: Set attribs and attrib_bufs to NULL when attrib_count = 0

- panfrost: Rename and move pan_render_condition_check()

- panfrost: Use dev->arch where appropriate

- panfrost: Add a panfrost_compile_shader() helper

- panfrost: Update ctx->batch when a fresh batch is requested

- panfrost: Fix a polygon list corruption in the multi-context case

- panfrost: Don’t add the tiler BO when it’s not accessed

- pan/bi: Add an is_terminal_block() helper

- pan/bi: Make sure we never branch to an non-existing clause

- pan/bi: Add uclz() support

- pan/bi: Support bit_count()

- panfrost: Use panfrost_get_shader_options() in panfrost_build_blit_shader()

- panfrost: Hide backend compiler internals

- panfrost: Prefix shader related helpers with pan_shader_

- panfrost: Move sysval_to_id out of panfrost_sysvals

- panfrost: Keep the compiler inputs in the context

- panfrost: Move the shader compilation logic out of the gallium driver

- panfrost: Provide a helper to prepare the shader related parts of an RSD

- panfrost: Use the pan_shader_prepare_rsd() helper

- panfrost: Rename pan_blend.h into pan_blend_cso.h

- panfrost: Move the blend lowering code out of the gallium driver

- panfrost: Move the blend logic out of the gallium driver

- Revert “pan/bi: Optimize out redundant jumps to #0x0”

- pan/bi: Move int64 lowering before idiv lowering

- panfrost: Split the direct and indirect draw logic

- panfrost: Add a parameter to suppress next job prefetching

- panfrost: Allow passing an explicit global dependency when queuing a job

- panfrost: Add a pan_section_offset() helper

- panfrost: Move pan_special_varying definition to pan_encoder.h

- pan/bi: Extend the bi_builder to support type variants correctly

- panfrost: Add a knob to disable the UBO -> push constants optimization

- panfrost: Allow passing an explicit UBO index for the sysval UBO

- panfrost: Print the correct UBO size when dumping UBO information

- panfrost: Don’t count the special vertex/instance ID attributes on Bifrost

- panfrost: Split the sampler and texture count

- panfrost: Expose panfrost_modifier_to_layout()

- pan/gen_pack: Parse alignment requirements

- panfrost: Specify descriptor alignment requirements

- panfrost: Provide various helpers to simplify descriptor allocation

- panfrost: Define the Surface and Surface-with-stride descriptors

- panfrost: Emit surface descriptors with pan_pack()

- panfrost: Use the descriptor allocators where appropriate

- panfrost: Get rid of panfrost_pool_alloc()

- panfrost: Move the blend shader cache at the device level

- panfrost: Use the blend shader cache attached to the device

- panfrost: Don’t reserve space in the color buffer for disabled RTs

- panfrost: Skip disabled RTs when selecting a RT for transaction elimination

- panfrost: Stop including pan_device.h from pan_bo.h

- panfrost: Add helpers to support indirect draws

- panfrost: Prepare things for indirect draws

- panfrost: Hook up indirect draw support

- panfrost: s/panfrost_slice/pan_image_slice_layout/

- panfrost: Move image states out of pan_image_layout

- panfrost: Add a format field to pan_image_layout

- panfrost: Stop passing a depth > 1 when creating 2D textures

- panfrost: Add extra info to the pan_image_layout struct

- panfrost: Split pan_image in two

- panfrost: Add an offset field so we can attach a sub-buffer to an image

- panfrost: Move out-of-band CRC info to pan_image

- panfrost: Move special Z32_S8X24 case out of panfrost_setup_layout()

- panfrost: Add a pan_image_layout_init() helper

- panfrost: Patch the gallium driver to use pan_image_layout_init()

- panfrost: Pass an image view to panfrost_new_texture()

- panfrost: Provide a helper to calculate the polygon list size

- panfrost: Provide a helper to retrieve image surface pointers

- panfrost: Pass a const device to panfrost_sample_positions()

- pan/midg: Use the sampler index passed to the texture instruction

- panfrost: Add various helpers to simplify FB desc emission

- panfrost: Add an helper to emit fragment jobs

- panfrost: Add align info to the draw and draw padding definitions

- panfrost: Add the early ZS pre frame mode

- panfrost: s/pandecode_vertex_tiler_postfix_pre/pandecode_dcd/

- panfrost: Decode pre/post frame DCDs

- panfrost: Extend pan_fb_info to allow passing a tile enable map

- panfrost: Extend pan_fb_info to allow passing pre/post frame DCDs

- panfrost: Always pass a non-NULL screen to set_damage_region()

- panfrost: Create a blitter library to replace the existing preload helpers

- panfrost: Fix partial update

- panfrost: Use the generic preload and FB helpers in the gallium driver

- panfrost: Kill the old tile-buffer preload logic

- panfrost: Pass a tile enable map to avoid reloading untouched tiles

- panfrost: Fix pan_blitter_get_blit_shader()

- panfrost: Don’t advertise AFBC mods when the format is not supported

- panfrost: Reserve thread storage descriptor in panfrost_launch_grid()

- panfrost: Fix indirect draws

- panfrost: Fix ZS reloading on Bifrost v6

Boyuan Zhang (2):

- frontend/va/image: add pipe flush for vlVaPutImage

- frontends/omx/h265: search entire dpb list

Caio Marcelo de Oliveira Filho (43):

- intel/fs: Separate SLM size calculation from encoding

- nir: Add a data pointer to the callback in nir_remove_dead_variables

- spirv: Don’t remove variables used by resource indexing intrinsics

- nir/linking: Remove system_value handling from helper

- compiler: Use util/bitset.h for system_values_read

- ci: Add nouveau chipset 162 to shader-db runs

- vulkan: Update XML and headers to 1.2.168

- spirv: Update headers and metadata from latest Khronos commit

- nir: Two shared memory *blocks* may alias each other

- spirv: Implement SPV_KHR_workgroup_memory_explicit_layout

- anv: Implement VK_KHR_workgroup_memory_explicit_layout

- spirv: Don’t bother counting num_images/num_textures

- spirv: Don’t remove dead variables in `create_library` mode

- spirv: Store SPIR-V version of the module

- spirv: Refactor variable initializer code

- spirv: Recognize zero initializers in Workgroup variables

- nir: Add nir_zero_initialize_shared_memory

- anv: Implement VK_KHR_zero_initialize_workgroup_memory

- spirv: Fail when parsing invalid Initializers

- spirv: Use OpEntryPoint to identify valid I/O variables

- spirv: Count variables *after* unused ones are removed

- spirv: Skip creating unused variables in SPIR-V >= 1.4

- spirv: Allow variable pointers pointing to an array of blocks

- intel/compiler: Use gl_varying_slot_name_for_stage()

- freedreno/ir3: Use gl_varying_slot_name_for_stage()

- etnaviv: Use gl_varying_slot_name_for_stage()

- st/atifs: Use gl_varying_slot_name_for_stage()

- compiler: Drop now unused gl_varying_slot_name()

- spirv: Reuse nir_is_per_vertex_io()

- spirv: Explicitly break when finished handling SpvDecorationBuiltIn

- spirv: Update a couple of comments in variable handling

- anv: Lower ViewIndex to zero when multiview is disabled

- spirv: Update headers and metadata from latest Khronos commit

- nir: Handle deref_atomic_fadd in a couple of passes

- intel/compiler: Make vue_map parameter const for brw_compile_fs

- intel/compiler: Use a struct for brw_compile_fs parameters

- intel/compiler: Use a struct for brw_compile_vs parameters

- intel/compiler: Refactor the shader INTEL_DEBUG checks

- intel/compiler: Make brw_postprocess_nir take debug_enabled as a parameter

- intel/compiler: Make vec4 generator take debug_enabled as a parameter

- intel/compiler: Make visitors take debug_enabled as a parameter

- intel/compiler: Use INTEL_DEBUG=blorp to dump blorp shaders

- intel/compiler: Use a struct for brw_compile_cs parameters

Chad Versace (30):

- anv/image: Replace bo_is_owned with from_gralloc (v2)

- anv/image: Rename anv_image_plane::surface -> primary_surface

- anv/image: Move vkGetImageMemoryRequirements

- anv/image: Drop duplicate ‘format’ in anv_image_create()

- anv/image: Fix interpretation of ‘disjoint’

- anv/android: Fix size check for imported gralloc bo

- anv: Add anv_surface_is_valid()

- anv/image: Clean up anv_GetImageMemoryRequirements2

- anv: Refactor anv_image_get_compression_state_addr

- anv/image: Add anv_image_address()

- blorp/gen12: Don’t use aux address if implicit CCS

- anv/image: Make memory layout more explicit

- vulkan: Track dependencies of Python imports

- anv/image: Simplify assertions in anv_image_from_swapchain()

- anv/image: Fix tiling if VkImageSwapchainCreateInfoKHR

- anv/image: In vkCreateDmaBufImageINTEL use modifiers

- anv/image: Check that anv_image is compatible with its modifier

- anv/image: Refactor check_memory_bindings()

- anv/image: Fix cleanup of failed image creation

- anv/image: Add ANV_IMAGE_MEMORY_BINDING_PRIVATE

- anv/image: Fix Vk*ImagePlaneMemory*Info for modifier images

- anv: Move assert in vkGetImageSubresourceLayout

- anv/image: Fix vkGetImageSubresourceLayout for modifier images

- anv: Implement image acquire/release of modifier images

- anv: Declare anv_layout_to_* as pure functions

- anv/image: Add ‘offset’ param to add_surface()

- anv/image: Support VkImageDrmFormatModifierExplicitCreateInfoEXT

- anv: Enable VK_EXT_image_drm_format_modifier

- anv: Remove vkCreateDmaBufINTEL (v4)

- anv: Drop unused anv_image_create_info::stride

Charmaine Lee (1):

- gallivm: increase size of texture target enum bitfield

Chia-I Wu (38):

- virgl: update headers

- virgl: add support for VIRGL_CAP_V2_UNTYPED_RESOURCE

- targets/libgl-xlib: add support for virgl

- virgl: update headers from virglrenderer

- venus: add driver skeleton

- venus: add generated venus-protocol headers

- venus: add experimental renderers

- venus: add a CS encoder/decoder

- venus: add a ring buffer

- venus: initial support for vkCreateInstance

- venus: initial support for VkPhysicalDevice commands

- venus: initial support for VkDevice commands

- venus: initial support for queue/fence/semaphore

- venus: initial support for VkDeviceMemory commands

- venus: initial support for buffers/images/samplers

- venus: initial support for descriptor sets

- venus: initial support for render pass and fb

- venus: initial support for events and queries

- venus: initial support for module and pipelines

- venus: initial support for command buffers

- venus: advertise extensions promoted to 1.1

- venus: advertise extensions promoted to 1.2

- venus: initial support for transform feedback

- venus: initial support for WSI

- venus: update venus-protocol headers

- venus: prepare for splitting vn_device.[ch]

- venus: split out vn_command_buffer.[ch]

- venus: split out vn_pipeline.[ch]

- venus: split out vn_query_pool.[ch]

- venus: split out vn_render_pass.[ch]

- venus: split out vn_descriptor_set.[ch]

- venus: split out vn_buffer.[ch]

- venus: split out vn_image.[ch]

- venus: split out vn_device_memory.[ch]

- venus: split out vn_queue.[ch]

- venus: include individual venus-protcol headers

- ci: enable venus in some meson build jobs

- venus: check vn_renderer_info::vk_xml_version

Christian Gmeiner (26):

- etnaviv: handle NULL views in set_sampler_views

- vc4: add drm-shim

- ci: Update baremetal kernel to 5.11 plus patches

- nir: add load_texture_rect_scaling

- nir: add has_txs flag

- nir/lower_tex: ‘txs free’ tex_rect lowering

- nir/lower_tex: wider usage of nir_tex_instr_src_index(..)

- gallium: add PIPE_CAP_TEXRECT

- gallium/st: lower rectangle textures if not supported

- ttn: lower rectangle textures if not supported

- etnaviv: nir: support nir_intrinsic_load_texture_rect_scaling

- etnaviv: let st lower rect tex

- vc4: let st lower rect tex

- etnaviv: nir: add ubo lowering pass

- etnaviv: use nir_lower_uniforms_to_ubo(..)

- etnaviv: fix etna_nir_lower_ubo_to_uniform pass

- etnaviv: extend lower ubo tests

- gallium: call util_cpu_detect()

- etnaviv: use nir_lower_idiv(..) before opt loop

- ci/bare-metal: fix fastboot

- etnaviv: etnaviv: put sampler limit determination into own function

- etnaviv: factor out TS state emitting

- etnaviv: add support for NTE

- etnaviv: rename struct members

- ci/bare-metal: no need to use tee

- etnaviv: tell the truth if alpha-test is supported

Connor Abbott (61):

- nir/lower_tex: Handle sized tex destination types

- freedreno/ir3: Handle sized tex destination types

- ntt: Handle sized tex destination types

- nir/lower_bool: Rewrite dest_type for boolean destinations

- brw/vec4: Don’t convert tex dest type to glsl_type

- radv/meta: Use sized types for nir_tex_instr::dest_type

- v3dv/meta: Use sized types for nir_tex_instr::dest_type

- intel/blorp: Use sized types for nir_tex_instr::dest_type

- anv: Use sized types for nir_tex_instr::dest_type

- dxil: Use sized types for nir_tex_instr::dest_type

- panfrost/blit: Use sized types for nir_tex_instr::dest_type

- d3d12/blit: Use sized types for nir_tex_instr::dest_type

- nir: Use sized types for nir_tex_instr::dest_type

- st/mesa: Use sized types for nir_tex_instr::dest_type

- gallium/nir: Use sized types for nir_tex_instr::dest_type

- ttn: Use sized types for nir_tex_instr::dest_type

- st/atifs: Use sized types for nir_tex_instr::dest_type

- glsl/nir: Use sized types for nir_tex_instr::dest_type

- vtn: Use sized types for nir_tex_instr::dest_type

- ptn: Use sized types for nir_tex_instr::dest_type

- nir: Validate nir_tex_instr::dest_type bitsize

- nir/lower_tex: Assume that nir_tex_instr::dest_type is sized

- panfrost: Assume that nir_tex_instr::dest_type is sized

- ir3: Assume that nir_tex_instr::dest_type is sized

- ntt: Assume that nir_tex_instr::dest_type is sized

- freedreno/a6xx: Document threadsize-related fields

- freedreno/cffdec: Use rb trees for tracking buffers

- ir3/parser: Fix parsing of “0.0” in @const line

- freedreno/computerator: Fix example assembly

- ir3/parser: Support labels

- ir3/parser: Add ability to specify branchstack

- freedreno/computerator: Add branching example

- freedreno/computerator: Fix thrsz type

- freedreno/a6xx: Fix compute threadsize type

- freedreno/registers: Handle typed registers with fields

- freedreno/a6xx: Cleanup SP_XS_CTRL_REG0 definitions

- freedreno: Add local_size to ir3_shader_variant

- ir3: Calcuate max_waves and threadsize

- turnip: Use threadsize calculated by ir3

- freedreno: Use threadsize calculated by ir3

- freedreno/computerator: Use threadsize calculated by ir3

- freedreno: Report max_waves in shaderdb output

- freedreno/computerator: Add script for finding reg file size

- util/bitset: Avoid out-of-bounds reads

- freedreno/a3xx: Fix SP_FS_CTRL_REG1_INITIALOUTSTANDING

- ir3/legalize: Fix last input (ss) insertion

- ir3: Fix valid flags for STIB

- ir3/cp_postsched: Set address of uses for relative mov’s

- ir3: Don’t copy propagate arrays in ir3_cp

- ir3/postsched: Make sure to schedule inputs before kill

- vtn: Handle ZeroExtend/SignExtend image operands

- tu: Expose VK_KHR_spirv_1_4 and VK_EXT_scalar_block_layout

- tu: Expose VK_KHR_relaxed_block_layout

- ir3/sched: Don’t penalize uses of already-waited tex/SFU

- ir3/sched: Don’t schedule too many tex/SFU instructions

- ir3: Fix list corruption in legalize_block()

- tu: Correctly preserve old push descriptor contents

- ir3: Prevent oob writes to inputs/outputs array

- nir/lower_clip_disable: Fix store writemask

- tu: Fix SP_GS_PRIM_SIZE for large sizes

- ir3/postsched: Fix dependencies for a0.x/p0.x

Corentin Noël (1):

- ci: Use lavacli from master

Daniel Schürmann (67):

- aco: fix VOP3P assembly, VN and validation

- aco/RA: fix subdword operands on VOP3P instructions

- aco: allow constants/literals on every src position for VOP3P

- aco: allow SGPRs on every src position for VOP3P

- aco: change usesModifiers() considering opsel_hi on packed instructions

- aco: create helpers to emit vop3p instructions

- aco: emit packed 16bit instructions

- radv: vectorize 16bit instructions

- aco: simplify multiply-add combining

- aco: optimize packed mul+add to v_pk_fma_f16

- aco: optimize packed clamp

- aco: optimize packed fneg

- aco: optimize v_pk_fma_f16 -> v_pk_fmac_f16 on GFX10

- aco: propagate swizzles when optimizing packed clamp & fma

- aco: remove divergent branches which only jump over very few instructions

- aco/optimizer: don’t copy-prop logical phis

- aco/optimizer: don’t propagate subdword temps of different size

- aco: generalize subdword constant copy lowering

- aco/validate: validate that p_create_vector operands are aligned unless they are subdword operands

- aco/validate: ensure that Operand and Definition size matches for parallelcopies

- aco/validate: relax subdword restrictions

- aco: propagate temporaries into PSEUDO instructions if it can take it

- aco/optimizer: expand subdword vectors with SGPRs on all generations

- aco/optimizer: convert extract_vector with index 0 into parallelcopies if possible

- radv: don’t vectorize shift operations

- aco: fix VCC hint on boolean subgroup operations

- aco: fix nir_intrinsic_ballot with wave32

- aco: fix shared VGPR allocation on RDNA2

- aco: change gpr_alloc_granule to full alignment

- aco: refactor GPR limit calculation

- aco: don’t decrease the vgpr_limit when encountering bpermute

- aco: also consider VCC in get_reg_specified()

- aco: check get_reg_specified() on register hints

- aco: don’t abort() if disassembly fails

- aco: use VCC as regular SGPR pair on GFX10

- aco: don’t create unnecessary exec phi on merge blocks

- aco: handle non-temp phi definitions and operands

- aco: make all exec accesses non-temporaries

- aco: remove dead code for the handling of exec temporaries

- aco: fix assertion in insert_exec_mask pass

- nir: lower load_helper to is_helper if the shader uses demote()

- nir: lower is/load_helper to zero if no helper lanes are needed

- aco: remove special handling of load_helper_invocation

- aco: don’t rematerialize exec

- aco: value number VOPC instructions with different exec masks

- aco/value_numbering: use can_eliminate() function to avoid unnecessary hashmap lookups

- aco/optimizer: set VCC hint on new v_cmp_* definitions

- aco/ra: allow VCC on SMEM sbase operand on GFX10+

- .mailmap: fix email for Daniel Schürmann

- aco/ra: split affinity creation into separate function

- aco/ra: split register_file initialization into separate function

- aco/ra: refactor SSA repairing during register allocation

- aco/ra: iterate backwards when coalescing phis

- aco/ra: allow m0 in get_reg_specified()

- aco/ra: remove exec handling for phis

- aco/spill: refactor spill decision taking

- aco/spill: reload spilled exec masks directly to exec

- aco/spill: spill phi constants and exec directly to VGPR

- aco/spill: don’t count phis as variable access

- aco/spill: refactor some more spill decision taking

- aco/spill: refactor live-in registerDemand calculation

- aco/spill: use correct next_use_distances at loop header

- aco: lower p_spill with constants correctly

- aco: fix kill flags on phi operands

- aco: add new reindex_ssa() pass

- aco/cssa: rewrite lower_to_cssa pass

- aco/cssa: don’t create parallelcopies for constants and exec

Daniel Stone (3):

- CI: Try really hard to get updated Windows TLS certs

- CI: Trigger Windows builds for llvmpipe & Vulkan changes

- CI: Change LAVA job visibility

Danylo Piliaiev (50):

- turnip/ir3: handle image load/stores produced by AtomicLoad/Store

- turnip: make GS use correct varyings size from previous stage

- ir3: add debug option to override shader assembly

- freedreno/ir3/parser: add cat7 support

- turnip: don’t emit tess consts if they are not used

- freedreno: clamp scissor bounds

- freedreno/a2xx: fix scissors clamp bounds

- turnip: enable inheritedQueries

- turnip: consider HW limit on number of views when apply multipos opt

- turnip: consider tile_max_h when calculating tiling config

- turnip,freedreno/a6xx: tell hw the size of shared mem used by CS

- turnip/ir3: check for bindless IBOs in atomic dests fixup

- turnip: fix leak of tu_shader object during compute pipeline creation

- ir3: prevent duplication of instruction’s dependencies

- ir3: make mark_kill_path exit early if instr is already seen

- ir3: disallow moving memory writes over discard

- freedreno/hw: fix populating branch targets in isa_decode pre-pass

- turnip: fix SP_HS_WAVE_INPUT_SIZE value

- freedreno/a5xx: port handling of PIPE_BUFFER textures from a6xx

- ir3: use OPC_GETBUF to get size of sampler buffers

- turnip: lower device index to zero

- turnip: fill VkMemoryDedicatedRequirements

- turnip: set zmode to A6XX_EARLY_Z if FS forces early fragment test

- turnip: implement intrinsic_vulkan_resource_reindex

- ci/freedreno: run freedreno jobs on any change in src/freedreno/

- ir3: fix oob access to regs array for getbuf,getinfo,rgetinfo

- ir3/isa,parser: fix encoding and parsing of bindless s2en SAM

- ir3: match mova1 mnemonic when writing to A1

- freedreno/isa: assert if field’s range is out of bitset’s range

- ir3: disallow .sat on SEL instructions

- ir3: update info about applicability of saturation modifier

- turnip: expose several already implemented extensions

- nir: add nir_shader_as_str function

- turnip: implement VK_KHR_pipeline_executable_properties

- turnip: clamp to zero negative upper left corner of viewport

- turnip,ir3: account for dispatch group offsets

- freedreno/a6xx: copy full 64bit of primitive counter

- freedreno/a6xx: fix primitive counters debug output

- ir3/isa: account for randomly set by blob lowest bit of ibo atomics

- glsl/linker: Fix attempts to split up 64bit varyings between slots

- glsl/linker: Fix xfb with explicit locations and 64bit types

- ir3: nir_op_f2f16 should round to even

- ir3: convert shift amount to 16b for 16b shifts

- turnip: enable infinities for f16 math and document the register

- turnip: enable VK_KHR_16bit_storage on A650

- turnip: handle format list for compressed formats

- docs: mark float_controls,float16_int8,16bit_storage as done on Turnip

- turnip: fix alignment of non-32b types in workgroup memory

- turnip: implement variableMultisampleRate

- turnip: support copying both aspects of D32_SFLOAT_S8_UINT

Dave Airlie (163):

- device-select-layer: update for vulkan 1.2

- lavapipe: fix missing piece of VK_KHR_get_physical_device_properties2

- vk-device-select: add device group support

- lavapipe: refactor image surface creation

- lavapipe: rewrite attachment clearing for conditional rendering.

- gallium: add a cond rendering hook for vulkan.

- llvmpipe: handle vulkan conditional rendering

- lavapipe: add VK_EXT_conditional_rendering support.

- CI: add lavapipe to llvmpipe rules.

- lavapipe: add support for external memory/fd/sempahore extensions

- llvmpipe: handle firstvertex for vulkan draw parameters

- lavapipe: handle shader draw parameters

- lavapipe: add missing loader interface negoitation

- lavapipe: move to subclassing instance/physical device.

- lavapipe: add missing wsi entrypoint.

- lavapipe: sort extensions in proper order.

- lavapipe: use common dispatch layer.

- radv: move queue object to a common base object

- radv: remove all entrypoint enabled debug option

- radv: move to subclassed instance/physical_device structs

- radv: port to using common dispatch code.

- zink: don’t pick a cpu device ever.

- llvmpipe: add a mutex around debug resource tracking

- llvmpipe: fix use after free with fs variant cleanup

- lavapipe: reset shader constant buffers after execution

- glsl: fix leak in gl_nir_link_uniform_blocks

- llvmpipe: enable GL spir-v support

- util/format: add helper to check if a format is scaled.

- llvmpipe: don’t support scaled formats outside vertex buffers

- lavapipe: add support for 2/10/10/10 scaled formats.

- lavapipe: add support for missing 10/10/10/2 formats.

- lavapipe: add reference counting to descriptor set layout

- lavapipe: avoid pointer to pipeline layout in execution

- lavapipe: set viewport state dirty on first execute

- lavapipe: implement physical device group enumeration

- lavapipe/meson: drop megadrivers build req

- lavapipe: fix some void ptr arithmetic

- lavapipe: use msvc compatible 0 init

- lavepipe: some misc msvc fixes

- lavapipe: make OPT macro MSVC compatible

- lavapipe: use os_time for timing related things

- vulkan/util: add api to reset object magic + private data.

- radv: reset object base on recycled command buffers

- tu: reset object base on recycled command buffers

- lavapipe: reset object base on recycled command buffers

- util: add optimised memset64

- u_surface: use optimised memset64

- llvmpipe: zs clear use 64-bit memset

- lavapipe: use clear interface for renderpass clears

- glx: proposed fix for setSwapInterval

- zink: use extensioned draw indirect functions.

- zink/ci: update results now that we are testing zink/lavapipe

- lavapipe: add calibrated timestamp support

- zink/ci: update results for GL 3.3 testing enables

- zink/ci: disable arb_timer_query tests

- lavapipe: use the common icd generator

- lavapipe: fix msvc initialiser

- lavapipe: add dll definition file instead of using PUBLIC

- lavapipe: fix icd generation for windows

- meson/llvm: add native for gallium swrast

- lavapipe: handle tessellation domain winding

- lavapipe: enable KHR_maintenance2

- lavapipe: enable KHR_maintenace3

- lavapipe: fix descriptor set layout freeing.

- lavapipe: fix depth texturing swizzle

- lavapipe: use null probe path on win32

- ci: try building lavapipe on windows

- zink/instance: work with vulkan 1.0 and later loader.

- lavapipe: expose a 1.0 vulkan API for now.

- lavapipe: Define supported extensions in C

- lavapipe: VK_EXT_extended_dynamic_state support

- lavapipe: reorder descriptor set stages to get correct binding

- lavapipe: sort bindings before creating descriptor set

- clover: fix array images view creation

- lavapipe: fix pipeline vp/scissor mixup.

- lavapipe: fix dynamic viewport/scissor pipeline emission

- draw: fix uses viewport index for tess eval shader

- draw/prim_assembler: write correct decomposed primitive lengths

- llvmpipe: add support for shader viewport layer

- lavapipe: enable EXT_shader_viewport_index_layer

- zink/ci: update results after layer extensions enabled in lavapipe

- util/panfrost/glsl: rename BITSET_LAST_BIT to BITSET_LAST_BIT_SIZED

- util/bitset: add a new last bit api

- shader_info: convert textures_used to a bitset.

- gallium: add a sampler reduction cap + settings

- gallium: add a view mask to the draw command

- gallivm: mark subpass input attachments as 2d arrays

- gallivm: add support for load_view_index intrinsic

- draw: add interface to notify renderer of the current view index

- draw: refactor out the instances drawing code

- draw: add view_mask rendering support

- draw: pass the view index to the render driver

- draw/vs: pass the view index to the vertex shader

- draw: add tess/gs support for multiview index

- llvmpipe: add the view index callback from draw

- llvmpipe: add view index support to rasterizer

- lavapipe: add clear support for multiview

- lavapipe: add draw support for multiview

- lavapipe: add input attachment support for multiview

- lavapipe: add render pass support for multiview

- lavapipe: enable KHR_multiview

- llvmpipe: add reduction mode support

- lavapipe: add EXT_sampler_filter_minmax support

- lavapipe: add support for VK_KHR_create_renderpass2

- lavapipe: move queue to base object

- lavapipe: move to the common casting interfaces

- lavapipe: move to common create render pass code

- lavapipe: add single ssbo variable pointer support.

- docs: update lavapipe features.txt

- lavapipe: enable KHR_uniform_buffer_standard_layout

- lavapipe: enable EXT_scalar_block_layout

- lavapipe: add missing break

- lavapipe: fix writing availability for queries.

- lavapipe: add host query reset

- gallivm: convert packing to uint64 not double

- lavapipe: only init immutable samplers for correct types.

- lavapipe: add support for KHR_buffer_device_address.

- lavapipe: bump maxMemoryAllocationCount

- lavapipe: fix image format properties

- lavapipe: add missing sampler minmax properties

- lavapipe: add missing device group api

- lavapipe: drop unused vk_format in image struct

- lavapipe: fix templated descriptor updates

- gallivm: fix non-32bit ubo loads

- gallivm/nir: handle bool registers.

- nir: port fp16 casting code from dxil

- nir: lower 64-bit floats to 32-bit first.

- gallivm: use fp16 casts lowering

- lavapipe: enable 8/16-bit storage extensions

- llvmpipe: fix cube image size query

- st/glthread: allow for invalid L3 cache id.

- util: rework AMD cpu L3 cache affinity code.

- gallivm: add 64-bit atomic support for ssbo/shared.

- gallivm: add 64-bit atomic global support

- lavapipe: enable KHR_shader_atomic_int64

- lavapipe: only reference pCounterBuffers if non-NULL

- lavapipe: fail out if spirv->nir fails

- lavapipe: fix only clearing depth or stencil paths.

- zink/ci: update results after lavapipe clear fixes

- lavapipe: add support for KHR_imageless_framebuffer

- drisw: move zink down the list below the sw drivers.

- zink/ci: handle getting correct drisw driver.

- llvmpipe: when depth clamp is disable clamp to 0.0/1.0

- llvmpipe: always take depth clamping from state tracker

- ci: update zink/virgl results for depth clamping fixes

- lavapipe: add vulkan 1.1 properties/features apis

- lavapipe: fix missing protected memory properties

- gallivm: add subgroup vote 64-bit and feq support.

- gallivm: move get_flt_bld to header.

- gallivm: add subgroup system values support

- gallivm: add subgroup elect intrinsic support.

- gallivm: add subgroup reduction + in/ex scan support

- gallivm: add subgroup ballot support

- gallivm: add subgroup read invocation support

- gallivm: add subgroup lowering support

- gallivm: add compute shader subgroup system values support

- lavapipe: enable subgroups features

- lavapipe: enable correct workgroup sizing

- lavapipe: enable Vulkan 1.1 support

- docs: update lavapipe bits for 1.1

- lavapipe: add vk1.1 image swapchain support

- lavapipe: add dummy sampler ycbcr conversion

- lavapipe: fix mipmapped resolves.

David McFarland (1):

- radv: fix divide by zero with no tesselation params

Douglas Anderson (1):

- gallium/indices: Use “__restrict” to help the compiler

Drew Davenport (1):

- radeonsi: Report multi-plane formats as unsupported

Dylan Baker (33):

- VERSION: bump for 21.1.0 cycle

- docs: add release notes for 20.3.3

- docs: Add sha256sum for 20.3.3

- docs: update calendar and link releases notes for 20.3.3

- docs: update calendar for 21.0.0-rc1

- bin/post_version: convert the csv.reader into a concrete list

- docs: add release notes for 20.3.4

- docs: Add sha256sum for 20.3.4

- docs: update calendar and link releases notes for 20.3.4

- docs: update calendar for 21.0.0-rc2

- docs: update calendar for 21.0.0-rc3

- Scons: check for timespec_get on windows as well as unices

- docs: Remove 21.0 features from features_new.txt

- docs: add release notes for 21.0.0

- docs: update calendar and link releases notes for 21.0.0

- docs: Add calendar entries for 21.0 release.

- docs: Extend calendar entries for 21.0 by 1 releases.

- docs: Add calendar entries for 21.1 release candidates.

- docs: add release notes for 20.3.5

- docs: Add hashes for 20.3.5

- docs: update calendar and link releases notes for 20.3.5

- docs: add release notes for 21.0.1

- docs: Add 21.0.1 hashes

- docs: update calendar and link releases notes for 21.0.1

- docs: add release notes for 21.0.2

- relnotes: Add sha256sum for 21.0.2

- docs: update calendar and link releases notes for 21.0.2

- meson: OpenMP is supposed to be optional

- .pick_status.json: Update to ee9b744cb5d1466960e78b1de44ad345590e348c

- VERSION: bump for 21.1.0-rc3

- .pick_status.json: Update to cbd6e5f2e592a9834a03004a473537f25aea4336

- .pick_status.json: Update to ede0b3c643279f4126fb10552a2f1d00be27f16d

- .pick_status.json: Update to b80720acb13e1014aea89e6bd25f22d43df85356

Edward O’Callaghan (1):

- clover: Implement CL_MEM_OBJECT_IMAGE1D

Eleni Maria Stea (7):

- anv: Added the VK_EXT_sample_locations extension to the anv_extensions list

- anv: Implement physical device properties for VK_EXT_sample_locations

- anv/state: Take explicit sample locations in emit helpers

- anv: Add support for sample locations

- anv: Removed unused header file

- anv: Enabled the VK_EXT_sample_locations extension

- iris: fix in fences backend for ext_external_objects edge case

Ella-0 (1):

- glsl: build without bison

Enrico Galli (2):

- microsoft/spirv_to_dxil: Add support for load_vulkan_descriptor

- microsoft/spirv_to_dxil: Use non-zero exit code on failed compilations

Eric Anholt (207):

- gallium/ttn: Add support for TGSI_OPCODE_I64NEG/ABS.

- gallium/ntt: Stop lowering integer source mods.

- gallium/tgsi: Assert that we don’t see integer abs modifiers.

- gallium/tgsi: Remove support for f64 src modifiers.

- gallium/tgsi: Rewrite the docs on source modifiers.

- gallium/tgsi: garbage collect unused TGSI_UTIL_SIGN_MODE.

- mesa/st: Make a single helper for the NIR-to-TGSI transfer.

- mesa/st: Lower shader images before handing off to NIR-to-TGSI.

- mesa/st: Dump nir-to-tgsi output when ST_DEBUG=tgsi or nir is set.

- gallium/ntt: Don’t vectorize IBFE/UBFE/BFI.

- gallium/ntt: Add support for store_per_vertex_output.

- gallium/ntt: Avoid referencing undefined channels of system values.

- ci/freedreno: Mark some a5xx separate_shader tests as xfails.

- ci/freedreno: Fix up the xfail/flake handling of a3xx texture functions.

- ci/freedreno: Remove a bunch of stale flakes from a3xx.

- ci/freedreno: Drop some long-unseen a5xx flakes.

- ci/freedreno: Drop skip list stuff from a5xx flakes.

- ci/freedreno: Remove some long-unseen a6xx known flakes.

- util/format: Fix pack/unpack of A1R5G5B5_UINT.

- mesa: Add some little unit tests showing format unpack behavior.

- mesa: Drop incorrect statement about Z unpack behavior.

- mesa: Replace the float[4] unpack code with util/format’s.

- mesa: Make _mesa_unpack_rgba_block() use the u_format pack/unpack.

- util: Move most of src/mesa/main/format_utils.h to util/format/

- util: Fix UBSan failure on _mesa_unorm_to_unorm.

- util: Fix rounding of unpack_unorm8 from small unorm formats.

- mesa: Reuse util_format’s unpack_8unorm.

- mesa: Reuse util_format’s unpack functions for pure integer formats.

- util: Give a reasonable answer when unpacking z32unorm from floats.

- mesa: Use a bunch of util functions for Z/S unpacking.

- mesa: Move the rest of format_unpack.py out of code generation.

- util/format: Simplify the generated unpack code.

- swrast: Use util_format_write_4/4ub for the scattered pixel writes.

- mesa/main: Replace float pack function with util_format_pack_rgba().

- mesa/main: Replace the uint format packing code with util/format’s.

- ci/piglit: Upgrade to a newer piglit in our containers.

- ci/freedreno: Fix xfail setup for sampler3d_float_vertex.

- nir_to_tgsi: Store directly to TGSI outputs when possible.

- r300,i915g: Report no shader buffers or images on non-TCL HW.

- nir_to_tgsi: Fix buffer overflow in atomic image compswap.

- swr: Don’t report support for shader images.

- panfrost: Stub out set_shader_images().

- gallium: Fix leak of shader images on context destruction.

- util/bitset: Avoid dereferencing the bitset for size == 0.

- ci: Add a fractional deqp run of softpipe with asan enabled.

- freedreno/a6xx: Skip the body of emit_state if we’re clean.

- freedreno: Move blend gmem checks to a blend dirty state check.

- freedreno: Move framebuffer state checks under a ctx->dirty flag.

- freedreno: Skip some batch dependency tracking if !ctx->dirty.

- ci/freedreno: Detect cheza HFI errors and restart the run.

- ci/freedreno: Ban vs-clip-vertex-enables which flakes in CI.

- ci/freedreno: Ban more flaky clip-enables tests.

- ci/freedreno: Make a630 piglit_shader run a manual run, too.

- freedreno: Use a real type instead of void * for the fd_batch->key.

- freedreno: Early-out from the resource write path when we’re the writer.

- freedreno: Remove duplicate bc invalidate on flush_write_batch().

- ci: Update baremetal kernel to 5.11-rc5 plus patches.

- mesa/st: Allocate the gl_context with 16-byte alignment.

- ci/freedreno: Drop pointless GIT_STRATEGY setting for a630.

- ci/freedreno: Use the new nginx cache for trace downloads.

- ci/freedreno: Use the http cache for artifacts downloads, too.

- ci/docs: Update CI farm requirements suggestions.

- docs/ci: Document setting up the http cache for traces.

- ci/lava+baremetal: Add an xserver to the root fs.

- ci/freedreno: Do our piglit runs against Xorg.

- ci/freedreno: Add Valve games and other traces now that we have GLX.

- freedreno: Make sure that queries are disabled during shadow blits.

- freedreno: rename batch->active_providers to query_providers_used.

- freedreno: Backport a5xx/a6xx fix for active query handling.

- freedreno: Drop pointless clear of used providers.

- freedreno/a6xx: Skip guessing VSC size with indirect TF draw counts.

- docs: Document PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME.

- freedreno/a6xx: Add support for glDrawTransformFeedback().

- ci/deqp: Bump runner to 0.5.1 for recent runtime perf improvements.

- ci/freedreno: bump VK coverage to 1/4 of the CTS.

- ci/freedreno: Run a3xx gles3 in parallel and increase coverage.

- ci/virgl: Fix GLES31 testing on desktop GL.

- freedreno: Force updating active queries on batch reordering.

- freedreno: Remove FD_STAGE_* in favor of a “disable_all” flag.

- freedreno/a5xx: Don’t forget to count our custom blits against queries.

- mesa/st: Always precompile the first shader variant.

- mesa/st: Assume that the default variant is always first in the list.

- vc4: Remove vestiges of alpha test lowering.

- vc4: Stop advertising support for PIPE_CAP_TWO_SIDED_COLOR.

- vc4: Stop advertising support for VS color clamping.

- v3d: Clean up vestiges of alpha test lowering.

- v3d: Stop advertising support for PIPE_CAP_TWO_SIDED_COLOR.

- v3d: Stop advertising support for PIPE_CAP_*_COLOR_CLAMPED.

- v3d: Stop advertising support for flat shading.

- gallium: Document behavior of more lowering pipe caps.

- freedreno: Add missing dep on freedreno tracepoints.

- gallium: Flip the default value of PIPE_CAP_SHAREABLE_SHADERS.

- virgl: Drop a context dependency from part of the shader compile path.

- v3d/qpu: Avoid leaking memory in the QPU disasm test.

- mesa/st: Make sure to unbind cb0 on transition away from gs/tess shaders.

- ci: Allow better customization of the name of the artifacts for minio.

- ci/freedreno: Add a fractional gles31 run with asan enabled.

- ci/freedreno: Drop the “arm64” in front of job names.

- ci: Move specific driver testing to separate files in separate dirs.

- ci/freedreno: Fix a5xx piglit runs.

- ci/freedreno: Remove stray BM_DTB definition.

- ci/bare-metal: Use an upstream kernel for db820c.

- ci/a5xx: Update the piglit expectations.

- ci/a5xx: Increase our dEQP GLES3 fraction by 4x.

- ci: Move the dEQP and traces expectations to the per-driver CI dirs.

- ci: Move the piglit expectations lists to the per-driver CI dirs.

- ci/zink: Add tests of gles2, gles3, and gl33 on lavapipe.

- zink: Use mesa_loge() for should-never-be-reached initialization errors.

- zink: Remove NULL checks after GET_PROC_ADDR_INSTANCE().

- softpipe: Fix the const buffer overflow check.

- mesa: Get the FXT1 compressor/decompressor off of GL types.

- mesa: Move the FXT1 compressor/decompressor to util/

- llvmpipe: Enable FXT1 texture decompression.

- v3d: Replace driver lowering of GL_CLAMP with mesa/st’s.

- ci/piglit: Stop including the test counts at the end of expectations.

- ci/iris: Move the traces yml file to the driver-specific dir.

- mesa: Always make sure uniform storage doesn’t get reallocated.

- freedreno: Remove uniform variables after finalizing NIR.

- freedreno: Drop custom driver lowering of two-sided color.

- freedreno: Drop custom driver lowering of GL’s color clamping.

- freedreno: Use the mesa/st frontend lowering of GL_CLAMP.

- freedreno/a5xx+: Stop recompiling on texture samples changes.

- freedreno/a5xx+: Drop the unused no_decode_srgb flag.

- freedreno/a5xx: Fix cube image load/stores.

- nir: Add a nir_src_is_undef() helper, like nir_src_is_const().

- nir/vec_to_movs: Don’t generate MOVs for undef channels.

- ci: Move deqp-default-skips.txt back to .gitlab-ci/

- ci/lava: Move the per-driver gitlab-ci.yml to each driver.

- ci/lava: Move the driver expectation files to the per-driver CI dir.

- tgsi_exec: Roll the loops for condmask handling.

- tgsi_exec: Jump over entirely non-taken THEN or ELSE branches.

- ci/freedreno: Also retest when only CI configuration changes.

- ci/freedreno: Switch the fastboot boards to using nfsroot.

- ci/a5xx: Run all of gles2 in one job.

- ci/a3xx: Run all of GLES3 dEQP.

- ci/a5xx: Increase the gles3/31 coverage.

- ci/a5xx: Update piglit expectations.

- ci/zink: Add another primitive restart flake.

- ci/turnip: Mark a flaky WSI test.

- lima: stop encoding the texture format in the shader key

- lima: don’t look at dirty bits for setup of FS key

- lima: upload the shader to a BO at shader creation

- lima: avoid stomping over bound shader state when creating new shaders

- nir-to-tgsi: Fix handling of partial writemasks on SSA/REG decls.

- docs: Add some documentation of game GL buffer object mapping behavior.

- freedreno/a5xx: Introduce an event write helper like a6xx has.

- freedreno/a5xx: Flush depth at the end of sysmem, like a6xx does.

- ci/freedreno: Mark another a5xx TF flake.

- u_format: Mark the generated pack/unpack src/dst args as restrict.

- mesa/st: Unify st_get_vp_variant() and st_get_common_variant().

- mesa/st: Add perf debug for draw-time variant compiles.

- mesa/st: Fix precompile misses on compat GL VSes writing to color outputs.

- virgl: Update GLES expectations.

- ci/freedreno: Add three more a5xx flakes from the last day.

- freedreno/a5xx: Fix the texel buffer alignment requirement.

- freedreno/a5xx: Fix the max texture buffer size.

- ci/panfrost: Disable t860/radeonsi testing while the runners are struggling.

- ci: Bump deqp-runner to v0.6.3.

- ci/freedreno: Switch the piglit testing to the new piglit runner.

- ci/bare-metal: Restart a run on intermittent kernel lockups.

- ci/freedreno: Mark an a630 piglit flake from async shader compiling.

- ci/freedreno: Mark the rest of the glx_arb_sync_control@timing as flakes.

- nir_to_tgsi: Respect PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED.

- freedreno/a5xx: Fix stream-output binning handling.

- freedreno/ir3: Demote centroid usage to pixel on non-msaa.

- ci/freedreno: Mark all of dEQP TF as flaky.

- ci/bare-metal: Move the db820c lockup detect to the right boot script.

- ci/freedreno: Mark glx-swap-copy as a flake on a630.

- freedreno/a6xx: Rename the RB_BLIT_INFO.INTEGER field to SAMPLE_0.

- freedreno/a6xx: Disable sample averaging on depth/stencil resolves.

- freedreno: Move the ir3 linked shader cache to the context.

- freedreno/a3xx: Switch to using ir3_cache for looking up our VS/FS.

- freedreno/a4xx: Switch to using ir3_cache for looking up our VS/FS

- freedreno/a5xx: Switch to using ir3_cache for looking up our VS/FS

- turnip: Fix KGSL build since common dispatch rework.

- broadcom: Disbale CLIF dumping when libexpat isn’t available.

- ci/android: Make sure we don’t detect system libexpat.

- ci/android: Build the v3dv driver.

- iris: Flag for resolves when stencil enable changes, too.

- freedreno: Assert that TF prims generated can ignore active_queries.

- freedreno/ir3: Move max-tf-vtx calculation to a .c file

- freedreno: Move max-tf-vtx calculation to just the HW that needs it.

- freedreno: Move the primitives generated/written updates after the draw.

- freedreno: Don’t count SW TF queries on a6xx.

- freedreno: Clamp TF prims written to buffer size pre-a6xx.

- ci/freedreno: Mark a630 as flaky on arb_draw_indirect-transform-feedback

- nir: Update clip_distance_array_size in clip lowering.

- freedreno/a6xx: Use the frontend userclip lowering.

- freedreno/a5xx: Add support for clip distances and use them for userclip.

- freedreno/a5xx: Use VALIDREG/CONDREG like a6xx do.

- ci/freedreno: Demote a630-asan to a manual test for now.

- ci: Drop the custom db820c kernel/dtb from the kernel+rootfs.

- ci/freedreno: Add more new traces for a630 (minetest, TDM, pioneer, glyphy).

- ci/freedreno: Rename a306-test and a530-test to drop “arm64” from the name.

- ci/freedreno: Add trace testing on a3xx, a5xx.

- freedreno/a5xx: Fix alpha test vs early Z bugs.

- freedreno/a6xx: Fix alpha tests.

- ci/freedreno: Switch to the trimmed glxgears trace.

- ci/freedreno: Fix up the a5xx border color flake annotation.

- ci: Uprev deqp runner to 0.6.5.

- ci: Uprev piglit to 6a4be9e9946d (“piglit: NOTE! Default branch is now main”)

- ci: bump bare-metal kernel to bring in an a530 stability fix

- freedreno: Fix YUV sampler regression.

- nir_to_tgsi: Use ARL instead of UARL in the !native_integers case.

- nir: Generate load_ubo_vec4 directly for !PIPE_CAP_NATIVE_INTEGERS

- freedreno/a6xx: Don’t try to do Z-as-RGBA blits for mismatched formats.

- ci/virgl: Mark a couple of new Crash tests as flakes.

Eric Engestrom (12):

- VERSION: bump to 21.1.0-rc1

- .pick_status.json: Update to c74d93cf0187e07cdfacc448a947a8cae485eb41

- .pick_status.json: Update to 95d9d811c91076d50385b2fbd330335b68688c69

- .pick_status.json: Update to fcb5ba58165cd407408f8dd9a102f0c5e16a9956

- VERSION: bump for 21.1.0-rc2

- .pick_status.json: Mark 8acf361db4190aa5f7c788019d1e42d1df031b81 as denominated

- .pick_status.json: Update to 35a28e038107410bb6a733c51cbd267aa79a4b20

- .pick_status.json: Update to 7e905bd00f32b4fa48689a8e6266b145662cfc48

- .pick_status.json: Update to 72eca47c660b6c6051be5a5a80660ae765ecbaa5

- .pick_status.json: Update to f3d2fade82c168a7ffffa4bd7bf22585c45c711b

- .pick_status.json: Update to f5d6a1b916fb163ee72e6a6f356937b1fbac53e0

- .pick_status.json: Update to 1d418e79b8a0f4270775277b7115b88ac4c77113

Erico Nunes (15):

- lima: introduce fs and vs shader cache

- lima/ppir: fix creation of mov node for non-ssa tex dest

- lima: set yuv formats as external_only

- lima: enable r and rg pixel formats again

- lima: always set stride in texture descriptor

- lima: implement GL_EXT_texture_swizzle

- docs/features: add lima features

- lima: fix max sampler views

- lima: run nir dce after nir_lower_vec_to_movs

- lima/ppir: remove liveness info from blocks

- lima/ppir: remove use of live_out

- lima/ppir: rework liveness data structures to bitset

- lima: fix half float render

- lima: enable rg formats for fp16 render

- lima: increase epsilon for depthrange near == far

Erik Faye-Lund (158):

- zink: handle NULL views in zink_set_sampler_views

- zink: fix vertex-stride wrangling

- docs: fix sphinx-warnings due to lacking escaping

- docs: fix broken link

- docs: turn non-code into comment

- docs/features: add missing features for zink

- docs/features: remove a few redundant zink mentions

- zink: always expose linear float textures

- zink: respect feature-cap for robust buffer access

- zink: respect feature-cap for independent blending

- zink: respect feature-cap for sample-shading

- zink: respect feature-cap for multi-draw indirect

- zink: check for extension instead of function

- zink: require vulkan memory model for tesselation

- zink: make all xfb caps depend on extension

- zink: respect fragment-shader depth-layout

- zink: clone shader before lowering clip_halfz

- docs/zink: add missing colon

- docs/zink: add two missing required features

- docs/zink: document the independentBlend requirement for GL3

- docs/zink: fix phrasing of GL 3.3 requirements

- docs/zink: add GL 4.0 requirements

- docs/zink: add GL 4.1 requirements

- docs/zink: add GL 4.2 requirements

- docs/features: mark off two more extensions for zink

- docs/zink: correct vk version for GL 4.2

- mesa/main: remove leftover bumpmap code

- compiler/nir: add texcoord replace lowering pass

- gallium/st: lower point-sprites if not supported

- zink: request texcoord replace lowering

- docs/features: mark ssbos as done for zink

- zink: remove stale TODO

- zink: be more careful about limits when unsupported

- zink: correct return-type for function

- zink: only emit SpvCapabilityDerivativeControl when needed

- zink: only emit cap when needed

- zik: correct spir-v caps for textures and images

- zink: do not insist shaders come from glsl

- zink: add a get_primitive_mode-helper

- zink: add a get_spacing-helper

- zink: refactor vertex-order emitting

- zink: wrap some long lines

- docs: fix invalid rst syntax

- zink: check for error when calling vkEnumeratePhysicalDevices

- zink: explicitly check for VK_NULL_HANDLE

- zink: support using lavapipe

- CI: always expose docs artifacts

- ci: make sure all lava-builders have libvulkan

- ci: run piglit on zink with lavapipe

- lavapipe: report correct value for minMemoryMapAlignment

- ci: document arm oddity in build-rules

- zink: correctly handle 64 valid timestamp bits

- zink: enable excluded test

- ci: enable max texture size tests for zink

- lavapipe: handle null-buffers for xfb

- ci: disable sporadically failing test

- zink: drop extra set of parens

- zink: do not use extra staging resource unless needed

- zink: don’t always require linear display-targets

- zink: limit host-visible bind-flags

- zink: ignore irrelevant bind-flags

- zink: use gallium api to copy to display-target

- zink: add X32_S8X24 format

- zink: correct inaccurate comment

- lavapipe: fix primitive-restart for uint8 indices

- zink: fix emulation of no mipfilter

- zink: fix free of ralloced pointer

- gallium/st: fix shader_has_one_variant

- gallium/st: fix shader_has_one_variant

- gallium/st: reserve space in default uniform block for lowered constants

- docs: remove stray newline

- docs: remove excessive wrapping

- docs: remove excessive quoting

- docs: document zink GL 4.3 requirements

- docs: document zink GL 4.4 requirements

- docs: document zink GL 4.5 requirements

- docs: document zink GL 4.6 requirements

- docs: simplify format requirements

- zink: factor out interpolation to helper

- zink: emit all interpolation modes

- zink: check for pipeline statistics feature

- zink: check for depth-bias-clamp feature

- zink: check for stores and atomics features

- zink: add missing required feature

- zink: check for mirror-clamp extension

- zink: fix vector comparison

- zink: drop bool attempt in float vector compares

- zink: do not open-code vector-compares

- zink: follow spir-v 1.0 spec

- docs: Add 21.0.0 hashes

- zink: tighten emitted image spir-v caps

- zink: remove no-longer-needed clipdist1 patching

- frontends/va: correct check for invalid format

- zink: handle errors in nir_to_spirv

- zink: pre-populate locations in variables

- zink: do not depend on shader_slots_reserved for xfb

- zink: use pre-populated shader-locations

- lavapipe: report correct value for maxTexelBufferElements

- docs: do not try to copy missing file

- compiler/glsl: avoid null-pointer deref

- docs: remove bogus zink-requirement

- docs: remove zink incorrect requirement

- zink: do not enable unused extension

- docs: clarify VK_KHR_external_memory requirement

- zink: check base-requirements

- zink: assert that pstage is within range

- zink: simplify shader-removal

- zink: document why we’re calling pipe_shader_type_from_mesa

- docs: appling -> applying

- docs: sytem -> system

- docs: ie. -> i.e.

- docs: vulkan -> Vulkan

- zink: do not request scoped memory barriers

- docs: optimisation -> optimization

- docs: opencl -> OpenCL

- docs: Xorg -> X.Org

- docs: nops -> NOPs

- docs: lod -> LOD

- docs: lex / yacc -> Lex / Yacc

- docs: dfsm -> DFSM

- docs: fix incorrect possessive form

- docs: fix invalid rst

- docs: fix rst-quoting issues in release-notes

- docs: spell out full name of gitlab instance

- docs: spell out development

- docs: spell out environment

- docs: spell out freedesktop.org

- docs: no-op’d -> disabled

- docs: fix release notes for 20.3.5

- ci: turn sphinx-build warnings into errors

- bin/gen_release_notes.py: more robust rST escaping

- compiler/glsl: correct the number of string-arguments

- compiler/glsl: fix volatile string

- compiler/glsl: clean up output

- glsl: fix is_integer_16_32

- glsl: fix int16 type

- glsl: tolerate int16 loop counters

- gallium/st: correct range for float16

- gallium/st: correct range for int16

- zink: document scalarBlockLayout requirement

- zink: fix typo in function name

- compiler/glsl: drop rogue argument to _mesa_glsl_error

- compiler/glsl: do not cast struct to string

- lavapipe: do not subtract 8 from enum

- lavapipe: check all vertex-stages

- lavapipe: check all graphics stages

- lavapipe: ask pipe-driver for int16 support

- zink: do not clear on cpu

- zink: fall back from cached to non-cached memory

- zink: do not dereference NULL pointer

- zink: verify that src/dst support blitting

- zink: verify that source-format support linear-filter

- zink: fix stencil-export cap emission

- gallivm: handle 16-bit input in i2b32

- zink: do not read outside of array

- zink: do not require vulkan memory model for shader-images

- zink: correct image cap checks

- zink: fix shader-image requirements

Fan Yugang (1):

- intel/tools: Show unknown instructions in decoded state.

Francisco Jerez (9):

- intel/gen12: Fix memory corruption issues in fused Gen12 parts.

- intel/genxml: Fix pixel hashing 3DSTATE_3D_MODE field definitions for Gen12 and Gen12.5.

- intel/genxml: Define 3DSTATE_SUBSLICE_HASH_TABLE command for Gen12 and Gen12.5.

- intel/dev: Implement pixel pipe subslice counting for Gen12+.

- iris/gen11+: Calculate pixel hashing tables instead of hardcoding.

- iris/gen12: Implement programming of pixel pipe hashing tables.

- anv/gen11+: Calculate pixel hashing tables instead of hardcoding.

- anv/gen12: Implement programming of pixel pipe hashing tables.

- iris/gen12: Work around push constant corruption on context switch.

Georg Lehmann (1):

- vulkan/device_select: Only call vkGetPhysicalDeviceProperties2 if the device supports it.

Gert Wollny (89):

- r600/nir: clone shader before first query to shader key

- r600/sfn: fix use of b32all/and

- r600: Add flags to INTERP_X and INTERP_Z two-slot ops

- r600/sb: Add support for INTERP_X and INTERP_Z ops

- r600/nir: pass array info to r600_shader for sb

- r600/sfn: update shader array info

- r600/sfn: Keep array registers alive for the whole shader

- r600/sb: fix boundary assert for mem-instruction decoding

- r600/sb: fall back to un-optimized byte code when ra_init fails

- r600: Enable sb also for NIR

- compiler/nir: Add support for lowering stores with nir_lower_instruction

- r600/sfn: Fix use of cnde_int for bcsel

- r600/sfn: Set unnormalized flag for z-coordinate when fetching from array

- r600/sfn: Add the position input as varying

- r600/sfn: Fix FS inputs when reading from the same position

- r600/sfn: Fix dual source blend lowered to FRAG_DATA

- r600/sfn: Use the constant buffer ID when given

- gallium/tgsi_to_nir: Handle SAMPLE_MASK output in FS

- gallium/tgsi-to-nir: Take property NUM_CLIPDIST_ENABLED into account

- r600/sfn: Handle memory_barrier_atomic_counters

- r600/sfn: Fix indirect_file flag for IMAGES

- r600/sfn: remove duplicate barriers

- r600/sfn: Base instr lowering class on nir_lower_instruction code

- nir: Add flag to tex instruction to indicate lowering cube to array

- nir: Add r600 specific CUBE opcode to evaluate cube texture coords and face

- r600/sfn: Add support for cube_r600 instruction

- r600/sfn: add lowering pass for cube textures

- r600/sfn: fix gather with cube lowering

- r600/sfn: use lower bool to int32 and lower int_tg4 only on shader clone

- r600/sfn: use lowering pass for cube textures

- r600/sfn: remove old cube texturing code

- r600/sfn: Lower FS inputs to temps late and, and lower interpolate at

- r600/sfn: set info about using helper_invocation to skip sb

- r600/sfn: lower isign and iabs in nir

- r600/sfn: Allow any channel for the helper invocation evaluation

- r600: unify nir shader options evaluation

- r600/sfn: remove code for nir_op_fsign since it is lowered

- r600/sfn: remove unused emit_alu_op2_split_src_mods

- r600/sfn: remove some old debug output

- r600/sfn: encode component in address for local IO

- nir: disaallow reordering for r600 shared load and remove component field

- r600/sfn: handle querying the number of layers in cube arrays

- r600/sfn: Fix loading TES gl_PatchVerticesIn

- r600: Don’t optimize using source modifiers on literals

- r600: Enable GLSL 450 for nir shaders.

- r600/sfn: Update status

- nir: Add r600 specific intrinsic for loading the tesselation coords

- r600/sfn: lower intrinsic_load_tess_coord to driver version

- r600/sfn: eliminate loading unused component loads from shared memory

- virgl: implement support for PIPE_CAP_STRING_MARKER

- r600/sfn: sort alu opcodes in switch statememt

- r600/sfn: remove unused code

- r600/sfn: fix buffer offset for ssbo writes

- r600/sfn: Fix including/not including c++ parts of header

- r600/sfn: lower bitfield_extract and bitfield_insert in NIR

- r600/sfn: lower idiv, imod, etc in nir

- r600/sfn remove some leftover debug output

- nir: add opcodes for *find_msb_rev and lowering

- nir: Add opcodes for fused comp + csel and optimizations

- nir: Add r600 specific sin and cos variants

- r600/sfn: Add algebraic lowering for fsin and fcos

- r600/sfn: optimize comp+csel using fused ops

- r600/sfn: lower find_msb variants to find_msb_rev

- r60/sfn: don’t lower scomp

- r600: Handle negate of second operator in TGSI_OPCODE_UADD

- r600/sfn: Make some value pool functions private

- r600/sfn: Add skelton for visitor pattern

- r600/sfn: remove extra parameter from alu assemebly emission

- r600/sfn: fix some formatting

- r600/sfn: switch assembler creation to use visitor

- r600/sfn: drop the local register mep

- r600/sfn: lower VS IO and drop old deref code

- r600/sfn: lowered FS output IO

- r600/sfn: remove old deref code

- r600/sfn: force dual source blend output handling in some cases

- r600/sfn: remove find_msb lowering in driver

- r600/sfn: clean up multi-sample texture load

- r600/sfn: clean up value pool interface usage in emit_stream

- r600/sfn: use get_temp_vec4 directly when fetching

- r600/sfn: make allocate_temp_register private to valuepool

- r600: Fix texture buffer offset alignment

- r600: don’t set an index_bias for indirect draw calls

- r600: Don’t advertise support for scaled int16 vertex formats

- r600/sfn: allocate number of VS outputs based on max driver_location

- r600/sfn: Only fetch the constants that are needed in fdd*

- r600: Enable sb for nir only on specific request

- Revert “r600: don’t set an index_bias for indirect draw calls”

- Revert “r600: Don’t advertise support for scaled int16 vertex formats”

- r600: don’t set an index_bias for indirect draw calls

Giovanni Mascellani (2):

- disk_cache: Fail creation when cannot inizialize queue.

- anv: Allow null handle in DestroyDescriptorUpdateTemplate.

Greg V (1):

- meson: Add missing lavapipe dep

Gustavo Padovan (4):

- gitlab-ci: extend x86_64 kernel config to suport Intel devices

- gitlab-ci: build the iris gallium driver as well

- gitlab-ci: add intel APL and GLK devices with manual triggers

- traces-iris: fix expectation for Intel GLK

Hans-Kristian Arntzen (2):

- radv: Take image alignment into account when allocating MUTABLE pool.

- radv: Allocate buffer list for MUTABLE descriptor types as well.

Hoe Hao Cheng (19):

- zink/codegen: add some new attributes to Extension

- zink/codegen: make ‘struct’ optional in Version

- zink/codegen: enable instance extension unconditionally if promoted

- zink/codegen: codegen-ize load_instance_extensions()

- zink/codegen: adding/fixing comments and copyright notice

- zink/codegen: find promotion version using vulkan registry

- zink: remove excessive checks for loader version

- zink: expose PIPE_CAP_ANISOTROPIC_FILTER

- zink: VK_KHR_draw_indirect_count is a device extension

- zink/codegen: introduce ExtensionRegistry

- zink/codegen: more validation in zink_instance

- zink/codegen: introduce notion of non-standard extensions

- zink/codegen: make zink_device_info accept vk.xml

- zink/codegen: perform basic validation in zink_device_info

- zink/codegen: validate has_properties and has_features

- zink/codegen: fix type annotations

- zink/codegen: do not enable extensions that are now core

- zink: enable KHR_shader_draw_parameters on Vulkan <1.2

- zink: fix detection of KHR_maintenance1/2

Hyunjun Ko (5):

- turnip: Return correct value of tu6_load_state_size

- nir: Set access at lower_ubo_vec4

- ir3: fix has_src() to return correctly in ir3_nir_lower_tex_prefetch

- ir3: Add nonuniform encodings to ir3 encoder and parser

- turnip: Enable nonuniform descriptor indexing

Iago Toral Quiroga (93):

- v3dv: only update uniforms for dirty descriptors if stage has descriptors

- v3dv: disable early Z writes if Z writes are disabled

- v3dv: don’t wait for idle on occlusion query pool resets

- v3dv: use PIPE_TIMEOUT_INFINITE

- v3dv: refactor checks for subpass attachment clears

- v3dv: refactor checks for subpass attachment loading

- v3dv: refactor checks for subpass attachment stores

- v3dv: do not emit full tile buffers clears to handle Z/S clears

- v3dv: enable early Z/S clears

- v3dv: fix disabling Early Z for the whole frame

- broadcom/compiler: fix indentation with TABs

- broadcom/compiler: prepare TMU spilling code to account for TMU pipelining

- broadcom/compiler: implement pipelining for general TMU operations

- broadcom/compiler: support pipelining of tex instructions

- broadcom/compiler: refactor image load/store TMU emission code

- broadcom/compiler: support pipelining of image load/store instructions

- broadcom/compiler: disable TMU pipelining if we fail to register allocate

- broadcom/compiler: disallow spilling if TMU pipelining was enabled

- broadcom/compiler: log spilling shaders to perf output

- broadcom/compiler: let QPUs stall on TMU input/config overflows

- v3dv: handle D/S buffer to image copies with the texel buffer path

- v3dv: batch copies in the copy_buffer_to_image_blit path

- v3dv: allow a component swizzle in copy_buffer_to_image_shader

- v3d/common: use spaces instead of TABs

- v3dv: serialize pipeline compilation when debugging shaders

- v3dv: add a perf trace when a device is created with robust buffer access

- v3d/compiler: fix QPU scheduler TMU sequence shuffling

- broadcom/compiler: add V3D_QPU_WADDR_UNIFA

- broadcom/compiler: pass a devinfo to check if an instruction writes to TMU

- broadcom/compiler: name registers correctly based on V3D version

- broadcom/compiler: don’t check for GFXH-1633 on V3D 4.2.x

- broadcom/compiler: add a helper to check if an instruction writes unifa

- broadcom/compiler: disallow unifa overlap with thread switch/end

- broadcom/compiler: preserve ordering of unifa/ldunifa sequences

- broadcom/compiler: ensure 3-slot delay between unifa and ldunifa

- broadcom/compiler: disallow reading two uniforms in the same instruction

- broadcom/compiler: do not DCE ldunifa

- broadcom/compiler: emit ldunifarf when needed

- broadcom/compiler: use unifa for UBO loads from uniform addresses

- broadcom/compiler: don’t emit redundant ldunif

- broadcom/compiler: use a helper function to decide on TMU spilling

- broadcom/compiler: don’t dump shader-db stats for failed shaders

- broadcom/compiler: fix ldunif optimization

- broadcom/compiler: allow dead code elimination of unused trailing ldunifa

- broadcom/compiler: remove unused leading ldunifa

- broadcom/compiler: add a constant alu optimization pass

- broadcom/compiler: skip unnecessary unifa writes

- broadcom/compiler: use nir_opt_sink

- v3dv: fix branching to large secondaries with more than one BCL buffer.

- broadcom/compiler: fix DAG pre-remove for merged instructions

- broadcom/compiler: fix indentation style

- broadcom/compiler: track pipelineable ldvary sequences

- broadcom/compiler: pipeline smooth ldvary sequences

- broadcom/compiler: allow pipelining of flat and noperspective varyings

- broadcom/compiler: ldvary pipelining tracking and documentation clean-ups

- broadcom/compiler: drop the destination for unused ldunifa

- broadcom/compiler: be more aggressive skipping unifa writes

- broadcom/compiler: always restart ldvary pipelining when scheduling ldvary

- broadcom/compiler: ldvary doesn’t implicitly write to r3 since V3D 4.1

- broadcom/compiler: fix flags check for ldvary merge

- broadcom/compiler: add an additional sanity check assert to the ldvary fixup

- broadcom/compiler: move code block around

- broadcom/compiler: simplify ldvary pipelining

- broadcom/compiler: disallow ldunif during ldvary sequences if possible

- v3dv: call util_cpu_detect() when initializing the instance

- broadcom/compiler: flag wrtmuc with a read dependency on last_tmu_config

- broadcom/compiler: be more flexible scheduling TMU writes

- vulkan/util: call glsl_type_singleton_init_or_ref from vk_instance_init

- compiler/glsl: call util_cpu_detect from glsl_type_singleton_init_or_ref

- broadcom/compiler: fix end of tmu sequence detection

- broadcom/compiler: use nir_opt_load_store_vectorize

- broadcom/compiler: use nir_lower_wrmasks to simplify TMU general stores

- broadcom/compiler: handle implicit uniform loads when optimizing constant alu

- broadcom/compiler: optimize constant vfpack

- broadcom/compiler: use nir_lower_undef_to_zero

- v3dv/pipeline_cache: fix assert

- broadcom/compiler: convert add to mul when possible to allow merge

- broadcom/compiler: add a v3d_qpu_writes_accum helper

- broadcom/compiler: try to fill up delay slots after a thrsw

- broadcom/compiler: flag TMU read dependencies against last TMU config

- broadcom/compiler: flag TMU reads with a read dependency on last TMU config

- broadcom/compiler: dump instruction index when failing to pack instructions

- broadcom/compiler: add a NOP count stat to shader-db

- broadcom/compiler: try to fill up delay slots after a branch instruction

- broadcom/compiler: try to fill up delay slots after unconditional branch

- broadcom/compiler: implement restriction for branch after setmsf

- broadcom/compiler: optimize branch emission for uniform break/continue

- v3dv: fix index buffer binding

- broadcom/compiler: add a definition for the unifa skip distance

- broadcom/compiler: allow compilation strategies to limit minimum thread count

- broadcom/compiler: sort constant UBO loads by index and offset

- broadcom/compiler: rename unifa tracking fields

- v3dv: fix descriptor set limits

Ian Romanick (33):

- i965: Don’t advertise OpenGL 3.3+ if driconf disables GL_ARB_blend_func_extended

- i965: Use allow_higher_compat_version option during screen initialization

- i965: Don’t parse driconf again

- nir/algebraic: Fix a >> #b << #b for sizes other than 32-bit

- nir/algebraic: add patterns for a >> #b << #b and a << #b >> #b

- nir/algebraic: Partially revert 3f782cdd2591

- intel/eu/validate: Add some checks for CMP and CMPN

- intel/compiler: Enable the ability to emit CMPN instructions

- intel/compiler: Make the CMPN builder work like the CMP builder

- intel/compiler: Use CMPN for min / max on Gen4 and Gen5

- nir/algebraic: Fix some min/max of b2f replacements

- nir/algebraic: Remove some redundant b2f logic-op reduction patterns

- nir/algebraic: Add some max/min optimizations with 3 variables

- nir/range-analysis: C++ linkage

- nir/range_analysis: Handle vectors better in ssa_def_bits_used

- intel/compiler: Silence unused parameter warnings in files that include brw_eu.h

- intel: Silence unused parameter warnings in files that include gen_device_info.h

- intel: Silence unused parameter warnings in files that include genX_pack.h

- intel/compiler: Relax some conditions in try_copy_propagate

- gallium/dri: Remove dri2_format_mapping::cpp

- nir/search: Constify instruction parameter to search helpers

- nir/algebraic: Apply addition property of equality more conservatively

- nir/algebraic: Apply addition property of equality to the other ordering too

- nir/range_analysis: Refactor fsat handling

- nir/range_analysis: Add “is finite” range analysis tracking

- nir/range_analysis: Add “is a number” range analysis tracking

- nir/range_analysis: Fix analysis of fmin, fmax, or fsat with NaN source

- nir/search: Use range analysis for is_finite

- nir/range_analysis: Simplify analysis of bcsel

- mesa: Add anything dynamically indexed before any non-dynamically indexed

- mesa: Clean up _mesa_layout_parameters after previous commit

- tgsi_exec: Fix NaN behavior of saturate

- tgsi_exec: Fix NaN behavior of min and max

Icecream95 (60):

- pan/bi: Lower 64-bit integers

- pan/bi: Handle 64-bit pack and unpack operations

- pan/bi: Add some compute intrinsic loads

- pan/bi: Set compute lowering options

- pan/bi: Improve interoperability of the command-line disassembler

- pan/bi: Implement load/store intrinsics

- pan/bi: Implement load_kernel_input

- panfrost: Set bifrost_props for compute shaders

- pan/bi: Improve unknown intrinsic error

- panfrost: Use the correct NIR options for OpenCL on Bifrost

- pan/bi: Use pan_nir_lower_64bit_intrin

- panfrost: Add a sysval for local_group_size

- panfrost: Add a sysval for local_work_dim

- panfrost: Assert on sysval overflow

- pan/mdg: Limit int64 vectorization

- pan/mdg: Don’t reorder loads/stores past each other

- pan/mdg: Allow 64-bit src_bitsize for comparison operations

- pan/bi: Add w0 to the ‘h01’ swizzle bucket

- pan/bi: Lower umul_high

- panfrost: Set TLS for compute jobs

- pan/bi: Implement saturated add/sub operations

- pan/bi: Implement ihadd/irhadd operations

- pan/bi: Implement packing ops between 32-bit vec1 and 16-bit vec2

- pan/mdg: Fix spilling when scratch memory is used

- pan/bi: Iterate from zero when setting RA interference

- panfrost: Add a function to determine if a resource is 2D

- panfrost: Only checksum resources when it makes sense to

- panfrost: Add a debug flag to disable checksumming

- panfrost: Transaction elimination support

- panfrost: Fix the tile size assertion

- pan/decode: Free mapped memory objects on BO unreference

- panfrost: Add support for INTEL_blackhole_render

- panfrost: Use normal malloc/free instead of ralloc for surfaces

- panfrost: Add the tiler heap to fragment jobs

- pan/bi: Return the size of the last clause from bi_pack

- pan/bi: Fix shader prefetch size

- panfrost: Fix clear color packing for 12-byte formats

- pan/bi: Don’t check liveness unless the index is valid

- pan/bi: Use the correct size for UBO loads

- pan/bi: Remove check for first_ubo_is_default_ubo

- pan/bi: Implement image load/store

- pan/bi: nir_intrinsic_image_size support

- st/mesa: Update constants on alpha test change if it’s lowered

- panfrost: Disable early-z when alpha test is used

- pan/mdg: Rename load/store operations

- pan/mdg: Use appropriate sizes for global loads/stores

- pipe-loader,gallium/drm: Fix the kmsro pipe_loader target

- pipe-loader: Stop trying to use kmsro for vgem

- panfrost: Implement panfrost_set_global_binding

- panfrost: Flush output after disassembling shaders

- panfrost: Only do point coord replacement for PIPE_PRIM_POINTS

- panfrost: Only add resource checksum BOs to the batch once

- panfrost: Align BO size to 4096 bytes

- panfrost: Add fast path for graphics work group computation

- panfrost: Unset shared/scanout binding flags for staging resources

- pan/bi: Skip nir_opt_move/sink for blend shaders

- panfrost: Fix shader texture count

- pan/decode: Allow frame shader DCDs to be in another BO than the FBD

- pan/mdg: Fix calculation of available work registers

- panfrost: Fix viewport scissor for preload draws

Ilia Mirkin (55):

- nv50/ir: ignore FS_BLEND_EQUATION_ADVANCED

- nv50,nvc0: explicitly list recently-added caps

- st/mesa: fix broken moves for u2i64 and related ops

- nv50/ir: clear dnz flag when converting mul/mad to simpler ops

- glsl: only expose int64 atomics when extension is enabled

- cso: set index_bounds_valid = true for arrays draws

- nvc0: index_bias is now only set for indexed draws

- nvc0/ir: add fixup to deal with interpolateAtSample with non-MSAA

- nv50,nvc0: clear internal vbo masks based on the trailing slots

- ci: remove nouveau from shader-db runs

- nouveau: reinstate fencing on screen destroy

- nv50: add PIPE_CAP_NIR_IMAGES_AS_DEREF to unsupported list

- nv50,nvc0: add scissored clear support

- st/mesa: do scissored clears on depth/stencil as well when supported

- i965: support GL_EXT_color_buffer_half_float

- mesa: fix conditions for fp16 render format eligibility

- mesa: fix fbo attachment size check for RBs, make it trigger in ES2

- mesa: add tracking of reduction mode

- st/mesa: add EXT_texture_filter_minmax support

- nvc0: enable minmax reductions on gm200+

- docs: add notes about nvc0 support of ARB/EXT_texture_filter_minmax

- mesa: only report INCOMPLETE_FORMATS for GLES1 / desktop

- gallium,st: add missing viewport swizzles

- nv50: initialize target for blit source surfaces

- nv50,nvc0: remove explicit target argument from view creation

- nv50: add appropriate space check before adding new pushbuffer

- nvc0: ensure sufficient push space for indirect data

- nvc0: fix reported driver queries for Pascal and later GPUs

- mesa: fix restoring of texture attributes for msaa binding points

- nv50: adapt texture and constbuf paths for compute shaders

- nv50: add resource tracking for shader images and buffers

- nv50: implement memory barrier handling

- nv50: add texture, constbuf, image, buffer validation

- nv50: pass in third axis via user param

- nv50/ir: retrieve (n)ctaid.z from first user param

- nv50/ir: force shared memory indirect to be an address

- nv50/ir: do not use inline offsets for global, ensure indirect access

- nv50/ir: fix emission of RED

- nv50/ir: lower buffer to global

- nv50/ir: fix emitting movs from imm to short registers

- nv50/ir: fix emission of cvt with half-reg destinations

- nv50/ir: fix emission of logic ops on half-regs

- nv50/ir: fix emission of shifts on half-regs

- nv50/ir: logic ops on half-regs can’t take an immediate

- nv50/ir: add support for 16-bit immediates

- nv50/ir: fix emission of 16-bit add

- nv50/ir: fix emission of cas without a destination

- nv50: fix expression for ucp offset

- nv50/ir: avoid inlining results of a locked load

- nv50/ir: fix emission of ld/st lock/unlock

- st/mesa: adapt for the case where buffers are not supported in frag

- nv50/ir: fix texture size for msaa textures

- nv50: emulate indirect draws

- nv50/ir: fake SV_THREAD_KILL support

- nv50: enable ARB_framebuffer_no_attachments

Italo Nicola (15):

- panfrost: fix attribute continuation decoding

- panfrost: add 3d attribute buffer continuation to XML

- panfrost: decode 3d attribute continuation

- panfrost: add resource modifier conversion

- panfrost: implement gallium->set_shader_images

- panfrost: emit shader image attribute descriptors

- panfrost: implement image_size sysval

- pan/mdg: create nir pass to lower image coord bitsize

- pan/mdg: enable image bitsize lowering pass

- pan/mdg: add ld_image opcodes

- pan/mdg: rename st_image opcodes and add float16 versions

- pan/mdg: implement shader image instructions

- pan/mdg: implement nir_intrinsic_image_size

- panfrost: advertise images for midgard

- pan/mdg: prevent csel_v from being scheduled alongside writeout

Iván Briano (4):

- anv: don’t advertise mipmaps for linear 3D surfaces on BDW

- anv: move buffer size alignment into helper function

- anv: use helper function to get the buffer size

- intel, anv: propagate robustness setting to nir_opt_load_store_vectorize

James Jones (4):

- nouveau: Stash supported sector layout in screen

- nouveau: Use DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D

- nouveau: no modifier != the invalid modifier

- nouveau: Use format modifiers in buffer allocation

James Park (22):

- radv: Use linker pragma to simulate weak functions

- radv: Remove unnecessary headers

- radv: Stub sections that don’t have _WIN32 support

- radv: Modify radv_descriptor_set for MSVC legality

- radv: Pointer arithmetic on char/uint8_t, not void

- radv: Disable calibrated timestamps on Windows

- radv: Use typed outarray API

- radv: Fix struct initialization for MSVC

- gallium/tessellator: Fix warning suppression

- microsoft: Fix comma in variadic macro for MSVC

- ac: Remove unnecessary header

- radv: Use typed outarray API

- amd: Disable surface modifier test on Windows

- radv: Pointer arithmetic without void*

- radv: Update JSON generator if Windows

- vulkan: Use typed outarray API

- vulkan: Fix source list for vulkan_wsi on Windows

- vulkan: Update dispatch table gen for Windows

- vulkan/util: Use util_bitcount

- ac/rgp: BSD elf library compatibility

- amd: Hide amdgpu_drm.h on Windows

- amd: Hide drm_fourcc.h on Windows

James Zhu (1):

- amd: add Aldebaran chip enum

Jan Beich (2):

- ac: prefer system EM_AMDGPU definition

- ac/rgp: define EM_AMDGPU if missing for compatibility

Faith Ekstrand (195):

- intel/tools: Decode COMPUTE_WALKER

- intel/fs: Allow compute dispatch without a pushed subgroup ID on Gen12-HP

- anv: Add a general state pool

- intel/fs: Emit code for Gen12-HP indirect compute data

- anv: Enable push constants on gen12-hp

- intel/genxml,anv,iris: Drop the legacy compute path from gen125.xml

- anv: Add a trivial implementation of VK_KHR_deferred_host_operation

- anv: Exit early from cmd_buffer_apply_pipe_flushes

- anv: Take the set of stages to flush in flush_descriptor_sets

- anv: Only flush descriptors used by the pipeline

- anv: Early-exit from cmd_buffer_flush_state

- nir/lower_int64: Add a level of wrapper functions

- nir/lower_int64: Fix lowering of f2[ui]64 for 16-bit float

- nir/lower_int64: Add lowering for some 64-bit subgroup ops

- nir/lower_int64: Add lowering for 64-bit iadd shuffle/reduce

- nir/lower_int64: Lower 64-bit vote_ieq

- intel/compiler: Return 1 for immediates in regs_read

- intel/compiler: Move brw_reg_type_for_bit_size to brw_reg_type.h

- intel/reg,fs: Handle immediates properly in subscript()

- intel/fs: QUAD_SWIZZLE requires packed data

- intel/fs: Support 64-bit SEL_EXEC on Gen11+

- intel/fs: Support 64-bit SHUFFLE on Gen11+

- intel/fs: Support 64-bit CLUSTER_BROADCAST on Gen11+

- intel/fs: Properly lower 64-bit MUL on 64-bit-incapable platforms

- intel/fs: Refactor our shuffle emit code

- intel/fs: Implement umin/umax shuffle

- anv: Advertise shaderInt64 on Gen11+

- anv: Break SAMPLE_PATTERN and MULTISAMPLE emit into helpers

- intel/fs: Add an ex_desc field to fs_inst for SHADER_OPCODE_SEND

- anv: Drop anv_dump

- anv: Fix an old parameter name in GetDeviceQueue

- anv: Refactor anv_queue_finish()

- anv: Add an anv_queue_family struct

- nir/from_ssa: Respect and populate divergence information

- vulkan/meson: Add missing dependencise on vk_extensions_gen.py

- anv: Clean up the vk_device on the CreateDevice error path

- radv: Properly clean up vk_device

- turnip: Properly clean up vk_device

- v3dv: Properly clean up vk_device

- lavapipe: Properly clean up vk_device

- vulkan: Move vk_device to its own file

- vulkan: Add a return code to vk_device_init

- vulkan: Add common extension tables

- anv: Use the common extension table struct

- vulkan: Add common dispatch table generation

- vulkan: Add dispatch table loading helpers

- vulkan-overlay-layer: Use the new dispatch tables

- vulkan: Add dispatch table lookup helpers

- vulkan: Add common instance and physical device structs

- vulkan: Add generators for instance trampoline functions

- vulkan: Add entrypoint tables and related helpers

- vulkan: Add common Get*ProcAddr implementations

- vulkan: Add a common entrypoint table generator

- anv: Add a single anv_genX switch macro

- anv: Use the common dispatch framework

- vulkan: Add framework for common entrypoints

- vulkan,anv: Move GetDeviceProcAddr to common code

- vulkan,anv: Add common entrypoints for VK_EXT_private_data

- anv: Make Get*MemoryRequirements a wrapper

- vulkan,anv: Move a bunch of trivial wrappers to common code

- vulkan,anv: Move VK_KHR_copy_commands2 wrappers to common code

- vulkan: Add a truly common VK_EXT_debug_report implementation

- anv: Switch to the common VK_EXT_debug_report

- turnip: Use the common dispatch framework

- turnip: Use common entrypoints for VK_EXT_private_data

- turnip: Drop some legacy wrappers in favor of common code

- turnip: Switch to the common VK_EXT_debug_report

- lavapipe: Drop some wrappers in favor of common code

- v3dv: Drop v3dv_instance::app_info

- v3dv: Use common entrypoints for VK_EXT_private_data

- v3dv: Switch to the common VK_EXT_debug_report

- radv: Use common entrypoints for VK_EXT_private_data

- radv: Switch to the common VK_EXT_debug_report

- vulkan: Make vk_debug_report_callback derive from vk_object_base

- anv: Use vk_object_base::type for debug_report

- vulkan: Use vk_object_base::type for debug_report

- vulkan: Make the debug_report implementation internal

- anv,radv: Use common entrypoints for VK_KHR_deferred_operation

- vulkan: Rework vk_device_init and friends

- vulkan: Drop the type_prefix parameter from gen_extensions

- nir: Add some ssa-only fast-paths for nir_src rewrite

- nir: Drop the lower_mem_constant_vars declaration

- vulkan: Add a common helper for enumerating instance extension properties

- vulkan: Rework extension disabling on Android

- anv: Pull the patch version from the XML

- anv: Make anv_icd.py more generic and independent

- anv,vulkan: Move anv_icd.py to a common location

- anv: Move extension tables to anv_device.c

- anv: Add fake graphics-only and compute-only queue families

- nir: Add a couple helpers for phis and cursors

- nir/lower_bit_size: Support phi instructions

- intel/nir: Lower 8-bit phis on Gen11+

- nir: Add some range analysis for used bits

- nir/algebraic: Clean up up-cast of down-cast when we can

- nir/algebraic: Covert up-cast of down-cast to extract on Intel

- spirv: Store the nir_function in vtn_function

- spirv: Delete the impl for prototype-only functions

- nir: Don’t optimize bcsel-of-shuffle across blocks

- nir: Fix parameter order in the bcsel-of-shuffle optimization

- nir/opt_large_constants: Handle generic pointers

- intel/fs: Shuffle can’t handle source modifiers

- anv/formats: Advertise linear sampling on depth formats

- anv/android: Re-implement AcquireImageANDROID

- intel/mi_builder: Create a context in the tests

- intel/mi_builder: Delete a bogus comment

- intel/mi_builder: Fix a misleading comment

- intel/mi_builder: Short-circuit shifts in more cases

- intel/mi_builder: Add constant folding

- intel/mi_builder: Rewrite unit tests in terms of constant folding

- intel/mi_builder: Add tests for gen_mi_z and gen_mi_nz

- intel: Rename gen_mi_builder.h to mi_builder.h

- intel/mi_builder: Drop the gen_ prefix

- intel/mi_builder: Use AddCSMMIOStartOffset for LRI

- intel/mi_builder: Add ieq/ine helpers

- intel/mi_builder: Support inverted values in mi_store

- intel/mi_builder: Add load/store_offest on GFX 12.5+

- genxml: Clean up MI_SET_PREDICATE

- intel/batch_decoder: Don’t follow predicated MI_BATCH_BUFFER_START

- intel/mi_builder: Use softpin for tests on gen8+

- intel/mi_builder: Return an address from __gen_get_batch_address

- intel/mi_builder: Add control-flow support

- nir: Add and use a new nir_ssa_def_rewrite_uses_src helper

- nir: Make nir_ssa_def_rewrite_uses take an SSA value

- nir: Make nir_ssa_def_rewrite_uses_after take an SSA value

- intel/mi_builder: Fix some indentation

- intel/mi_builder: Fix a couple of #ifs

- anv: Drop anv_extensions.py

- turnip: Move the CreateRenderPass wrapper to common code

- anv: Move multialloc to common code

- vulkan: Use VK_MULTIALLOC in CreateRenderPass

- anv: Move vk_format helpers to common code

- vulkan: Use correct aspectMask in CreateRenderPass

- vulkan: Add some asserts and checks for multiview in CreateRenderPass

- vulkan: Preserve preserve attachments in CreateRenderPass

- anv: Drop CreateRenderPass

- radv/meta: Use CreateRenderPass2

- radv: Drop CreateRenderPass

- intel/fs: Use INTEL_MASK for pushish constant address masking

- intel/fs: Handle payload node interference in destinations

- vulkan: Use ALWAYS_INLINE for multialloc

- vk/alloc: Handle zero sizes better in vk_multialloc_add

- vulkan/alloc: Add VK_MULTIALLOC_DECL macros

- vulkan/util: Add a type parameter to vk_multialloc_add

- vulkan/alloc: Use char * for pointer arithmetic

- anv,genxml: Handle L3SQCREG1_SQGHPCI in GenXML

- anv: Add an anv_batch_write_reg macro

- iris: Add an iris_write_reg macro

- genxml: Make 1-bit L3$ config register fields bool on Gen7

- intel/fs,rt: Add a predicate to load_global_const_block

- anv: Use load_global_constant for shader constants

- anv: Use nir_shader_instructions_pass in apply_pipeline_layout

- anv/apply_pipeline_layout: Refactor descriptor chasing code

- anv/apply_pipeline_layout: Rework the early pass index/offset helpers

- anv/apply_pipeline_layout: Lower UBO loads in the early pass

- anv/apply_pipeline_layout: Run DCE between the early and late passes

- anv/apply_pipeline_layout: Move bounds checking later for index/offset

- anv/apply_pipeline_layout: Plumb through a UBO address format

- anv/apply_pipeline_layout: Add some switch statements

- nir: Add a new 64+32-bit address format

- anv: Use 64bit_global_32bit_offset for SSBOs

- anv: Rework the 64bit_bounded_global resource index format

- anv: Zero out the last dword of UBO/SSBO descriptors in the shader

- anv/apply_pipeline_layout: Apply dynamic offsets in load_ssbo_descriptor

- anv/apply_pipeline_layout: Refactor all our descriptor address builders

- anv/apply_pipeline_layout: Rework the desc_addr_format helper

- anv/apply_pipeline_layout: Use the new helpers for early lowering

- anv/apply_pipeline_layout: Use the new helpers for images

- nir/lower_io: Support global addresses for UBOs in nir_lower_explicit_io

- anv: Add a pass for lowering A64 UBO access

- anv: Do UBO loads with global addresses for bindless

- anv/apply_pipeline_layout: Add support for A64 descriptor access

- nir: Add image atomic_fmin/fmax intrinsics

- spirv: Add support for SPV_EXT_shader_atomic_float_min_max

- intel/fs: Add support for 16-bit A64 float and integer atomics

- intel/genxml: Binding table pointers are 15 bits on GFX version 12.5+

- intel/tools: Handle milti-LRI in the batch decoder

- intel/tools: Handle GT_MODE in the batch decoder

- intel/genxml: Make BindingTablePoolEnable a bool

- intel/tools: Handle BINDING_TABLE_POOL_ALLOC in batch decoding

- anv: Align inline uniform data to ANV_UBO_ALIGNMENT

- anv: Implement VK_EXT_conservative_rasterization

- anv: Fix coverage masks for VK_EXT_conservative_rasterization

- intel: Drop gen_device_info::has_resource_streamer

- anv: Clean up anv_device_memory::base on failure

- anv: Refactor framebuffer creation

- anv: Clean up anv_descriptor_pool::base on the error path

- anv: Clean up anv_semaphore::base on the error path

- vulkan: Add a vk_object_multialloc helper

- anv: Use vk_object_alloc/free

- anv: Make memory type and queue family pointers const

- intel: fix querying mip levels on null surfaces on SKL and prior

- intel/compiler: Don’t insert barriers for NULL sources

- anv: Use the same re-order mode for streamout as for GS

- intel/isl: Fix isl_color_value_unpack to match the prototype

- intel/nir: Set lower txs with non-zero LOD

Jeremy Huddleston (5):

- darwin: Use the system libexpat

- util: Fix pointer to integer conversion error when using libunwind

- darwin: Use the system libunwind

- Fall back on clock_gettime when timespec_get() is unavailable

- Adjust dylib compatibility versions to match what was set by mesa-18.3’s autotools-based builds

Jesse Natalie (76):

- nir: Work around MSVC x86 internal compiler error

- main: Undefine MemoryBarrier for Windows

- glapi: Undefine MemoryBarrier

- mapi: Undefine MemoryBarrier

- drisw: Disable automatic use of layered drivers with LIBGL_ALWAYS_SOFTWARE

- wgl: Refactor screen creation to a function

- wgl: Add a loop for screen creation with an ordered list of fallbacks

- d3d12: Fail screen creation if a shader validator is needed and can’t be created

- wgl: Disable automatic use of layered drivers with LIBGL_ALWAYS_SOFTWARE

- CI: Use a sha for the Windows SPIRV-LLVM-Translator dependency

- microsoft/clc: Add -fgnu89-inline to clang args

- microsoft/clc: Add test with inline function

- clover: Add -fgnu89-inline to Clang command line

- microsoft/clc: Only apply float scaling to 32bit fdiv

- microsoft/clc: Let lower_vars_to_explicit_types fill kernel input driver_location

- microsoft/clc: Fix wrap modes for inline samplers for integer textures

- microsoft/clc: Move inline samplers to the end of the variable list

- microsoft/clc: Use driver_location for metadata instead of re-computing offsets

- microsoft/clc: Re-order dead variable removal after uniform vars_to_explicit_types

- microsoft/clc: Add a test with an unused kernel arg

- glapi: Support “ELF” TLS on Windows

- docs: Document USE_ELF_TLS can work on Windows too

- meson/gallium: Add an option to not use LLVM for gallium draw module

- d3d12: Handle null constant buffers

- nir: Add a nir_after_instr_and_phis helper

- microsoft/compiler: Don’t separate phis while inserting upcasts

- d3d12: Move descriptor pools to screen, and add lock

- d3d12: Handle is_new_style_shadow comparison filtering

- d3d12: Really handle null constant buffers

- u_format: Add restrict to fn pointer and manual format pack/unpack/fetch

- panfrost: Add a Meson dependency on bi_opcodes.h for bifrost_compiler

- meson, util: Make zlib optional again

- nir: Temporarily disable optimizations for MSVC ARM64

- wgl: Fix wglCreatePbufferARB pixel format lookup

- d3d12: Use ID3D12Device9::CreateCommandQueue1 when available

- d3d12: Use CreateDXGIFactory2 and use the debug flag when appropriate

- wgl: Add unit test infrastructure for OpenGL32.dll on Windows

- wgl: Add a context to framebuffer destruction

- d3d12: Add a constant for num_buffers

- d3d12: Clean up swapchains on framebuffer destruction

- wgl, d3d12: Add a d3d12-specific test for swapchain leaks

- microsoft/compiler: Move blob_init earlier to prevent crash on failure

- microsoft/compiler: Add copy_prop_vars to optimization loop

- microsoft/compiler: Add a lowering pass to split clip/cull distance compact arrays

- microsoft/compiler: Enable dxil_nir.h to be included from C++

- microsoft/compiler: Support compact arrays for clip/cull in nir_to_dxil

- d3d12: Use compact arrays for clip/cull distance

- microsoft/spirv_to_dxil: Implement TODO for removing dead functions

- spirv_to_dxil: Handle clip/cull distance

- microsoft/compiler: Fix barrier flag for shared memory

- microsoft/spirv_to_dxil: Lower globals to function_temp

- microsoft/spirv_to_dxil: Lower io arrays

- microsoft/compiler: Support fp16 i/o vars

- nir: Add a new opcode for [un]packing doubles

- microsoft/compiler: Add a lowering pass to emit double [un]pack instructions

- microsoft/compiler: Implement new double pack/unpack alu ops

- microsoft/spirv_to_dxil: Support doubles

- microsoft/compiler: Add some more float16 support

- meson: Refuse to build lavapipe without llvmpipe

- vtn: Don’t warn about linkage capability if we’re creating a NIR library

- vtn: Add a cap for CL drivers to support read-write images

- microsoft/clc: Update unit test to always use COMMON state for buffers

- meson: For MSVC, suppress warnings generated by useless delayloads

- driconf: Remove default values from string driconf entries

- CI: Enable -werror for Windows

- vtn: Support scoped control barriers for OpenCL too

- nir_opt_deref: ptr_as_array(deref_cast<T*>(x))[0] isn’t the same as x[0] if the cast has alignment

- nir: Fix MSVC warning C4334 (32bit shift cast to 64bit)

- d3d12: Fix MSVC warning C4334 (32bit shift cast to 64bit)

- microsoft/clc: Fix MSVC unreferenced variable warnings

- microsoft/clc: Fix undeclared function warning

- microsoft/compiler: Fix MSVC warning C4334 (32bit shift cast to 64bit)

- shader_enums: Fix MSVC warning C4334 (32bit shift cast to 64bit)

- gallium/aux: Fix MSVC warning C4334 (32bit shift cast to 64bit)

- llvmpipe: Fix MSVC warning C4334 (32bit shift cast to 64bit)

- xmlconfig: Fix MSVC warning C4334 (32bit shift cast to 64bit)

Jesse Schwartzentruber (1):

- glcpp: Fix undefined behaviour in glcpp

Joel Linn (2):

- freedreno/a2xx: fix/add RBBM perfcounter

- freedreno/a2xx: add RB perfcounter 1-3

Jonathan Marek (13):

- turnip: fix logicOp

- turnip: delete unused vk_format_parse.py file

- turnip: use vk_format_is_int to disable COLOR_ATTACHMENT_BLEND_BIT

- turnip: IMAGE_FILTER_{LINEAR,CUBIC}_BIT only for non-integer formats

- turnip: don’t always use 3d ops for blit_image

- turnip: add missing register write to disable dithering

- freedreno/registers: use macro instead of inline function for array regs

- freedreno/a6xx: update perfcntr registers (declare as arrays)

- freedreno/a6xx: always use reg64 for address registers (no LO/HI)

- freedreno/a6xx: update some registers

- freedreno/a6xx: set SP_PERFCTR_ENABLE in computerator

- turnip: implement VK_KHR_shader_float_controls

- turnip: enable VK_KHR_shader_float16_int8

Jordan Justen (28):

- intel/genxml/gen125: Add CFE_STATE and COMPUTE_WALKER

- intel/compiler: Disable push constants on gen12-hp

- anv: Emit CFE_STATE for gen12-hp

- anv: Don’t use MEDIA_INTERFACE_DESCRIPTOR_LOAD for gen12-hp

- anv: Use COMPUTE_WALKER for gen12-hp

- iris: Add support for COMPUTE_WALKER

- iris: Fix android build due to missing link to libmesa_iris_gen125

- anv: Add exec_flags to anv_queue

- anv: Turn device->queue into an array

- anv: Print queue number with INTEL_DEBUG=bat

- anv: Support i915 query (DRM_IOCTL_I915_QUERY) from Linux v4.17

- anv: Gather engine info from i915 if available

- anv: Add anv_gem_count_engines

- anv: Support multiple engines with DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT

- anv: Add ANV_QUEUE_OVERRIDE env-var to override advertised queues

- i965: Call util_cpu_detect() early in screen creation

- intel: Use GEN_VERSIONx10 in more places

- intel/dev: Add devinfo genx10 field

- intel: Use devinfo genx10 field

- anv: Restructure mem heap/type init code

- anv: Put cache memory type first on non-llc platforms

- anv: Add mem heap/type support for local-mem

- anv: Drop has_slm in emit_l3_config for gen11+

- anv: Use fallback paths if DRM_I915_QUERY_ENGINE_INFO fails

- i965/gen11: Fix must-be-ones bit positions in 3D_MODE

- genxml/gen12: 3D_MODE bits 31:16 are no longer must-be-one

- Revert “intel/compiler: Silence unused parameter warning in update_inst_scoreboard”

- intel/compiler: Fix INTEL_DEBUG=hex

Jose Maria Casanova Crespo (4):

- v3d: Enables DRM_FORMAT_MOD_BROADCOM_SAND128 support

- v3d: YUV formats at is_dmabuf_modifier_supported are external_only

- v3d: YUV formats at query_dmabuf_modifiers are external_only

- v3d: DRM_FORMAT_MOD_BROADCOM_SAND128 only available for NV12 format.

Joshua Ashton (3):

- lavapipe: handle NULL pStrides in CmdBindVertexBuffers2EXT

- lavapipe: implement CmdBindVertexBuffers with CmdBindVertexBuffers2EXT

- lavapipe: enable KHR_image_format_list

José Fonseca (6):

- scons: Add u_format_pack.h include path.

- wgl: Match opengl32.dll export ordinals.

- util: Always use timespec_get on Windows.

- appveyor: Remove integration.

- scons: Remove.

- gitlab-ci: Build meson-mingw32-x86_64 w/o zlib.

Juan A. Suarez Romero (40):

- v3d: fix dest offset in TFU setup

- v3d: use a compatible supported format for TFU-based blit

- vc4/ci: Replace expect script by python script

- ci/vc4: allow custom timeout values for activity

- ci/vc4: rename stage to Broadcom

- ci/vc4: Add piglit job

- ci: Bump deqp to current vulkan-cts-1.2.5.1

- ci: add option to overwrite CPU arch

- ci/v3d: Add V3D and V3DV testing

- ci/v3d: Update expected resuls for piglit

- ci/piglit: allow parallel piglit jobs

- ci/vc4/v3d: Parallelize piglit jobs

- ci/piglit: fix parallel piglit results

- ci/baremetal: highlight message errors

- ci/broadcom: retry always when serial log timeout

- ci: Bump deqp to vk-gl-cts 1.2.5.2

- ci/broadcom: allow custom kernels

- vc4: destroy renderonly object if present

- ci/armXX: add libgl1-mesa-dev dependency

- ci/v3dv: add flaky test in the skip list

- ci/vc4/v3d: run piglit testsuite against Xorg

- ci/broadcom: use new piglit runner

- ci/broadcom: update piglit expected results

- ci/v3d: run full GLES3 and GLES31 testsuite

- broadcom/compiler: fix unused value

- v3dv: fix unused value

- ci/v3dv: update flaky tests

- broadcom/cle: do not leak spec

- ci/broadcom: update expected list

- v3d: use uint type in _gen_unpack_uint

- broadcom/compiler: fix first_component assertion

- broadcom/compiler: use signed pointers for packed condition

- ci/broadcom: use SNMP to turn on/off devices

- broadcom/compiler: use VPM offsets in GS load_per_vertex input

- v3d: use GS_BIN inputs as VS_BIN outputs

- v3dv: fix assertion

- ci: Update VK-GL-CTS to 1.2.6.0

- v3d: do not emit attribute if has no resource

- ci/v3dv: skip Vulkan waiver tests

- util/hash_table: do not leak u64 struct key

Jérôme Glisse (3):

- gallium: add support for SVM (Share Virtual Memory) migrate

- clover: implement clEnqueueSVMMigrateMem

- nouveau: add support for SVM migrate

Karol Herbst (9):

- clover: track allocated svm pointers

- clover/api: make use of validate_mem_migration_flags in clEnqueueMigrateMemObjects

- nouveau: print warning about unhandled cap only once

- clover: simplify image arguments

- clover: rework quering image max sizes

- clover: Fix build with llvm-12.

- clover: Add missing include for llvm-12 build fix

- tegra/context: fix regression in tegra_draw_vbo

- tegra/context: unwrap indirect_draw_count as well

Keith Packard (2):

- glx: Provide glvnd wrapper for glXSwapIntervalEXT

- wsi/x11: Fix type of target_msc argument to x11_present_to_x11_dri3

Kenneth Graunke (62):

- vbo: Don’t set node->min_index = max_index = indices_offset when merging

- vbo: Only mark merged line strips as lines when actually converting them

- tnl: Try not to botch index buffer munging when start > 0.

- tnl: Respect `start` when converting indices to GLuint

- tnl: Reset nr_bos to 0 between map/unmap cycles.

- Revert “mesa: allow half float textures based on ARB_half_float_pixel”

- iris: Consider resolves after changing a resource’s aux state

- iris: Drop find_existing_assembly optimization from program cache

- iris: Drop iris_print_program_cache().

- iris: Refactor iris_debug_recompile interface to take a shader.

- intel: Produce a “constrained” output from gen_get_urb_config()

- iris: Reconfigure the URB only if it’s necessary or possibly useful

- iris: Move the URB size checks into iris_update_compiled_xs

- iris: Properly handle new unbind_num_trailing_slots parameters

- iris: Use shader_info rather than vs_prog_data for draw parameter checks

- iris: Minor code restyling in iris_bind_vs_state

- iris: Move VS draw parameter dirty flagging to iris_bind_vs_state

- iris: Refcount shader variants

- iris: Store a list of shader variants in the shader itself

- iris: Enable PIPE_CAP_SHAREABLE_SHADERS.

- iris: add hooks to call INTEL_MEASURE

- iris: Fill out scratch base address dynamically

- iris: Remove context from iris_debug_recompile

- iris: Remove context from iris_upload_shader()

- iris: Remove context from iris_compile_vs and friends

- iris: Remove context from iris_create_uncompiled_shader

- iris: Remove context from iris_disk_cache_retrieve

- iris: Make a pin_scratch_space() helper

- iris: Reference the shader variant for last_vue_map as well

- iris: Pin surface state buffers after possibly updating the clear color

- i965: Rename use_intel_mipree_map_blit to use_blitter_to_map

- i965: Rename intel_batchbuffer_* to brw_batch_*.

- i965: Rename intel_screen to brw_screen

- i965: Rename intel_texture_{object,image} to brw_texture_{object,image}

- i965: Rename intel_renderbuffer to brw_renderbuffer

- i965: Rename intel_mip* to brw_mip*.

- i965: Use __func__ in blorp perf_debug macros

- i965: Rename intel_buffer_object to brw_buffer_object

- i965: Rename intel_image_format and intel_buffer to brw_*

- i965: Rename the rest of intel_* functions to brw_*

- i965: Rename intelInit and brwInit camel-case functions to brw_*

- i965: Rename some camel-case local variables

- i965: Rename more camel-case functions to brw and underscore style

- i965: Rename DRI extension structs to be “brw” instead of “intel”

- i965: Eliminate all tabs except in brw_defines.h

- tnl: Call _mesa_matrix_analyse to make sure the inverse MVP is updated

- glsl/float64: Bump #version to 400

- iris: Defer uploading of surface states

- iris: Defer stream output target space allocation until set time

- iris: Rework zeroing of stream output buffer offsets

- iris: Support rebinding of stream output targets

- iris: Use different shader uploaders for precompile vs. draw time

- iris: Make various classes inherit from u_threaded_context base classes

- iris: Use thread safe slab allocators in transfer_map handling

- iris: Enable u_threaded_context

- vbo: Fix vbo_sw_primitive_restart for start > 0

- intel/genxml: Add a partial GT_MODE definition for Gen11+.

- iris: Delete stale comment in iris_lost_context_state

- intel: Fix release build breakage

- Half-revert “gallium/dri2: Pass the resource that corresponds to the plane”

- intel: Mark an otherwise unused variable in intel_dump_gpu as ASSERTED

- ci: Enable iris testing in meson-release

Kristian Høgsberg (1):

- macros: Add thread-safety annotation macros

Leo Liu (12):

- radeon/vcn: clean the message buffers and their indexes logic

- radeon/vcn: add dynamic dpb interface

- radeon/vcn: add dynamic dpb buffer Tier1 support

- radeon/vcn: enable dynamic dpb Tier1 support

- radeon/vcn: add dynamic dpb Tier2 message buffer interface

- radeon/vcn: implement dynamic dpb Tier2 support

- radeon/vcn: enable dynamic dpb Tier2 support

- meson: bump drm amdgpu version to 2.4.105

- ci: Fix meson-i386 build failed after libdrm bump version

- include/drm-uapi: bump AMDGPU headers

- ac: add function for querying video capabilities

- radeonsi: replace the hard coded video decode and encode caps

Lepton Wu (3):

- virgl: Don’t destroy resource while it’s in use.

- virgl: Use atomic operation directly.

- virgl: move new added field to the end.

Lionel Landwerlin (96):

- anv: add transfer usage for color/depth/stencil attachments

- anv: don’t disable KHR_performance_query in debug mode

- intel/mi_builder: optimize 64bit immediate register loads & memory stores

- intel/mi_builder: fix self modifying batches

- intel/perf: restructure i915 perf version checks

- intel/perf: add definition for generic perf counters

- intel/perf: link queries back to the gen_perf_config object

- intel/perf: move gt_frequency to results

- anv: Fix stencil layout in render passes

- intel: silence unused var warnings in release builds

- anv: fix invalid programming of BLEND_STATE

- intel/common: store sample position in plain arrays

- anv: pass context to reset stats helper

- anv: store queue creation flags on anv_queue

- genxml: PERFCNT registers are available since HSW

- intel/perf: prep work to enable new perf counters

- intel/perf: query register descriptions

- intel/perf: add performance query layout using MI_SRM

- intel/perf: switch query code to use query layout

- anv: fix layout comment

- anv: remove unused query pool field

- intel/perf: rename lkf into ehl

- intel/perf: add reorder script

- intel/perf: reorder xml files

- intel/perf: remove reordering script

- intel/perf: update files from IGT

- intel/perf: small ICL equation refactor

- intel/perf: add async compute metrics

- intel/dev: identify tigerlake

- intel/perf: break TGL perf configs in GT1/2

- intel/dev: identify rocketlake

- intel/perf: add RKL support

- intel/perf: add DG1 support

- intel/perf: drop the special READ_REG operator

- anv: compute commands required to implement perf queries

- anv: switch khr perf query code to use query layout

- anv: switch intel perf queries to query layout

- anv: add a comment describing has_relocs field

- anv: break up internal queueing function

- anv: only signal wsi fence BO on last command buffer

- drm-shim: report support for timeline semaphores

- intel/stub: plug some gaps in our ioctl faking

- anv: print out perf permission warning only once

- anv: discard all timeline wait/signal value=0

- vulkan: document flags choice for vkGetDeviceQueue

- genxml: add MI_SET_APPID on Gen12+

- genxml: Add PIPE_CONTROL protected memory bits

- isl: add external parameter to isl_mocs()

- anv: track command buffer pool flags

- anv: track buffer creation flags

- intel/dev: identify alderlake

- intel/perf: Add Alderlake metrics

- intel/perf: fix roll over PERF_CNT counter accumulation

- anv: reset binary syncobj to be signaled before submission

- anv: don’t wait for completion of work on vkQueuePresent()

- anv: Fix wait_count missing increment

- anv: make use of new helper function directly in anv_QueueSubmit()

- anv: track the end of the command buffers

- anv: end command buffer with a potential jump

- anv: allow multiple command buffers in anv_queue_submit

- anv: group as many command buffers into a single execbuf

- anv: fix missing general state pool in validation list

- anv: implement INTEL_DEBUG=submit

- anv: fix MI_PREDICATE_RESULT write

- intel/tools: fix meson warning

- intel/dev: add helpers to compute subslice/eu total

- intel/dev: add warning on missing kernel uAPI for Gen8+

- iris: use gen_device_info helper to get subslice total

- i965: stop using get_param for things queried by gen_device_info

- anv: stop using get_param for things queried by gen_device_info

- intel/dev: switch over to mesa log infrastructure

- anv: move L3 config emission to genX_state.c

- anv: move L3 initialization to device init on Gen11+

- intel: install intel_device_info

- intel/fs/vec4: add missing dependency in write-on-write fixed GRFs

- intel/dev: store size of CS prefetch

- intel/mi_builder: use device info to use the right CS prefetch size

- anv: use the device size of CS prefetch to pad secondary buffer calls

- meson: switch vulkan layer to list of choices

- intel: Add null hw layer

- gitlab-ci: fix vulkan build layer enabling

- intel/nullhw: fix build

- etnaviv/drm: only print out fence error on non timeout

- intel/fs/copy_prop: check stride constraints with actual final type

- intel/fs: implement another copy propagation restriction

- intel/compiler: lower bit sizes in NIR postprocessing

- anv: put correct number of BT prefetch for compute on XeHP+

- intel/fs: limit OW reads to 8 owords on XeHP+

- microsoft: fixup clc_log() define

- anv: bump internal descriptor index fields to 32bits

- anv: fix 3DSTATE_MULTISAMPLE emission on gen8+

- anv: disable baked in pipeline bits from dynamic emission path

- spirv: fix uToAccelerationStructure handling

- spirv: fixup pointer_to/from_ssa with acceleration structures

- vulkan/wsi/display: don’t report support if there is no drm fd

- i965/bufmgr: fix invalid assertion

Lucas Stach (5):

- renderonly: remove layering violations

- renderonly: close the gpu fd when destroying renderonly

- etnaviv: don’t try to copy PIPE_BUFFER with the 3D engine

- etnaviv: remove stale comment in etna_resource_copy_region

- Revert remaining half of “gallium/dri2: Pass the resource that corresponds to the plane”

Lukas Feller (2):

- v3dv: fix assertion in job_compute_frame_tiling

- v3dv: fix stride in buffer copy

Marcin Ślusarz (20):

- intel/perf: export information about units of performance counters

- intel/compiler: cache computed register pressure benefit

- intel/tools/aub: print better error message when mmap fails

- intel/tools/aub: handle truncated input file

- intel/tools/aub: remove superfluous new line from error messages

- intel/dump_gpu: mark bo as unmapped if its address changes

- anv: fix memory allocation error handling

- iris: fix decode_get_bo

- i965: fix decode_get_bo

- intel/batch_decoder: catch invalid sampler state pointer

- intel/batch_decoder: drop bogus check

- intel/batch_decoder: fix decoding of sampler states

- intel/batch_decoder: assert on invalid sampler pointer

- intel/aub_viewer: catch invalid sampler state pointer

- intel/aub_viewer: drop bogus check

- intel/aub_viewer: fix decoding of sampler states

- gallium: add PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATH

- iris: disable dynamic VAO fastpath on GFX version 9

- gallium/u_threaded: implement INTEL_performance_query hooks

- gallium/u_threaded: offload begin/end_intel_perf_query

Marek Olšák (406):

- mesa: always set valid index bounds for non-indexed draws for classic drivers

- st/nine: stop using cso_set_sampler_views

- st/xa: stop using cso_set_sampler_views

- gallium/tests: stop using cso_set_sampler_views

- gallium/api: add state invalidate interface as alternative to cso_save/restore

- gallium/hud: don’t use cso_context to restore VBs, constbuf 0 and sampler views

- gallium/pp: don’t use cso_context to restore VBs, constbuf 0 and sampler views

- st/mesa: don’t use cso_context to restore VBs, sampler views for glBitmap

- st/mesa: don’t use cso_context to restore VBs for glClear

- st/mesa: don’t use cso_context to restore VBs, sampler views for glDrawPixels

- st/mesa: don’t use cso_context to restore VBs, sampler views for glDrawTex*OES

- st/mesa: don’t use cso_context to restore VBs, etc. for PBO glReadPixels

- st/mesa: don’t use cso_context to restore VBs, etc. for PBO glTexSubImage

- st/mesa: don’t use cso_context to set const bufs, sampler views and images

- st/mesa: replace st->pipe with pipe in a few places

- cso_context: remove ability to restore VBs, const bufs, sampler views, images

- st/mesa: unbind sampler views, images, and vertex buffers after meta ops

- st/mesa: optimize binding and unbinding shader images

- radeonsi: constant buffer cleanups

- radeonsi: don’t clear unaligned bits when unbinding vertex buffers

- radeonsi: move emit_cache_flush functions into si_gfx_cs.c

- radeonsi: don’t pass pipe_draw_info into si_emit_vs_state

- radeonsi: don’t pass pipe_draw_info into si_emit_ia_multi_vgt_param

- radeonsi: translate pipe_prim_type only when it changes

- radeonsi: don’t pass pipe_draw_info into si_emit_derived_tess_state

- radeonsi: don’t compute average vertex count in si_draw_vbo

- radeonsi: fix si_num_prims_for_vertices for PIPE_PRIM_POLYGON

- radeonsi: make cik_emit_prefetch_L2 templated and move it to si_state_draw.cpp

- radeonsi: add a specialized function for CP DMA L2 prefetch

- radeonsi: make sctx->vertex_elements always non-NULL

- radeonsi: remove MRT-draw-calls, spill-draw-calls, spill-compute-calls

- radeonsi: get out of si_emit_vs_state early for blit vertex shaders

- radeonsi: rearrange condition for streamout workaround on gfx7 and gfx8

- radeonsi: don’t use si_get_vs_state in most places

- radeonsi: trim the size of si_vgt_param_key and si_vgt_stages_key

- mesa: fix alpha channel of ETC2_SRGB8 decompression for !bgra

- radeonsi: unify uploaders on APUs too

- radeonsi: don’t pass pipe_draw_info into si_emit_draw_registers

- radeonsi: don’t set context_roll for non-gfx9 in templated functions

- radeonsi: add si_get_user_data_base selecting user data registers

- radeonsi: evaluate sh_base in si_emit_vs_state at compile time

- radeonsi: inline the last use of si_get_vs_state

- radeonsi: evaluate si_get_vs in si_draw_vbo at compile time

- radeonsi: enable the GS tri strip adj workaround with primitive_restart

- radeonsi: clear dirty_atoms and dirty_states only if we entered the emit loop

- radeonsi: move variables closer to their use in most draw state functions

- radeonsi: don’t validate inlinable uniforms at draw time

- radeonsi: allow instance_count == 0 on chips that handle it correctly

- glthread: remove marshal=”draw” because it doesn’t do much

- glthread: don’t sync with NV_half_float vertex attrib functions

- glthread: add specialized versions of unmarshal_Draw funcs without user buffers

- glthread: track all matrix stack depths

- glthread: implement glGetIntegerv for states that glthread tracks

- glthread: rename inside_dlist to ListMode for future use

- glthread: remove if (COMPAT) conditions from functions that are GL-compat-only

- mesa: add _mesa_get_list helper

- glthread: add display list support to fix state tracking with display lists

- mesa: remove _mesa_initialize_exec_dispatch from draw.c by autogenerating it

- mesa: remove redundant glRect functions for display lists

- mesa: optimize glCallLists by using loops inside a switch

- mesa: simplify handling OPCODE_CONTINUE for display lists

- mesa: simplify terminating display list loops

- mesa: remove STATE_INTERNAL

- mesa: combine STATE_ENV, STATE_LOCAL enums with STATE_xxx_PROGRAM

- mesa: flatten STATE_MATERIAL and STATE_LIGHTPROD tokens

- mesa: eliminate the switch statement for STATE_TEXGEN

- glsl: remove unused internal builtin gl_CurrentAttribVertMESA

- glsl: split gl_CurrentAttribFragMESA into elements

- mesa: skip memmove in optimize_state_parameters if it’s no-op

- mesa: rename STATE_LIGHT_ATTRIBS -> STATE_LIGHT_ARRAY for consistency

- mesa: optimize get_local_param_pointer and program_local_parameters4fv

- mesa: don’t allocate local parameters in fetch_state

- mesa: merge local and env program parameters for faster uploads

- mesa: sort state vars with constant indexing for ARB programs

- mesa: add upper bound to limit program state var iterations

- mesa: compute gl_program_parameter_list::UniformBytes accurately

- mesa: don’t handle STATE_* enums in fetch_state that don’t do anything

- mesa: sort and tightly pack STATE_* enums to generate better switch code

- mesa: merge equivalent switch cases in prog_statevars.c

- st/mesa: enable state var merging to improve fetch_state performance

- radeonsi: add new possibly faster command submission helpers

- radeonsi: clear dirty_states if si_pm4_bind_state is unbinding or no-op

- radeonsi: don’t mark NULL states as dirty in si_pm4_reset_emitted

- radeonsi: optimize translating index_size to index_type

- radeonsi: don’t use rasterizer_discard to validate draws, only check ps_shader

- radeonsi: add internal blitter_running flag

- radeonsi: simplify determining whether render condition is enabled at draw time

- radeonsi: inline si_blend_color and si_clip_state structures

- radeonsi: move y_inverted out of si_viewports

- radeonsi: don’t set vertex buffer dirty flags when they don’t do anything

- radeonsi: move if (sctx->vertex_buffers_dirty) into the upload function

- radeonsi: rename SI_SGPR_RW_BUFFERS to SI_SGPR_INTERNAL_BINDINGS

- radeonsi: skip some code for ALLOW_PRIM_DISCARD_CS if tess or GS is enabled

- radeonsi: enable accidentally disabled fast launch with non-indexed tri strips

- radeonsi: iterate from draw 1 for total/min_direct_count computation

- st/mesa: don’t enable smoothing if multisampling is enabled

- Revert “gallium/u_upload_mgr: allow use of FLUSH_EXPLICIT with persistent mappings”

- gallium: add take_ownership param into set_constant_buffer to eliminate atomics

- gallium: add unbind_num_trailing_slots to set_vertex_buffers

- gallium: add unbind_num_trailing_slots to set_shader_images

- gallium: add unbind_num_trailing_slots to set_sampler_views

- gallium: add take_ownership param into set_vertex_buffers to eliminate atomics

- cso_context,u_vbuf: add take_ownership param into set_vertex_buffers

- st/mesa: eliminate all atomic ops when setting vertex buffers

- st/mesa: skip atomics when binding UBOs

- gallium/u_upload_mgr: eliminate all atomics for the upload buffer

- gallium/u_threaded: add a null constant buffer codepath

- gallium/u_threaded: unify user and non-user codepaths in set_constant_buffer

- gallium/util: optimize pipe_vertex_buffer_reference binding the same buffer

- gallium,u_threaded: add pipe_draw_info::take_index_buffer_ownership

- st/mesa: set take_index_buffer_ownership to skip an atomic in u_threaded

- gallium/u_vbuf: skip draws with 0 vertices

- radeonsi: fix centroid with VRS coarse shading

- glthread: fix interpreting vertex size == GL_BGRA for vertex attribs

- glthread: fix glVertexAttribDivisor calls not being tracked by non-VBO uploads

- glapi: guard against invalid XML definitions for glthread

- ac,radeonsi: track memory usage in KB to reduce types from uint64 to uint32

- radeonsi: optimize no-op cases in si_upload_shader_descriptors

- radeonsi: mark shader_pointers dirty once outside the upload descriptors loop

- radeonsi: move si_pm4_delete_state logic into si_pm4_free_state

- radeonsi: delete si_pm4_delete_state

- radeonsi: don’t check for redundant and NULL states in si_emit_all_states

- radeonsi: optimize si_emit_prefetch_L2 when it’s split

- radeonsi: reorganize si_draw_vbo for lower register pressure (part 1)

- radeonsi: reorganize si_draw_vbo for lower register pressure (part 2)

- radeonsi: set VB user SGPRs in si_upload_vertex_buffer_descriptors

- radeonsi: prefetch VB descriptors right after uploading

- radeonsi: precompute NGG cull flags in si_create_rs_state

- mesa: remove/replace FLUSH_VERTICES when it doesn’t do anything

- mesa: optimize most _mesa_ActiveTexture calls in glPopAttrib

- mesa: optimize glPopAttrib(GL_VIEWPORT_BIT)

- mesa: don’t push/pop gl_texture_object::Target

- mesa: fix glPopAttrib for many texture fields

- mesa: flush glBegin/End before changing GL_DEPTH_STENCIL_TEXTURE_MODE

- mesa: for every state change, remember states we changed for glPopAttrib

- mesa: fix trivial bugs in glPopAttrib

- mesa: optimize out _NEW_ALL in glPopAttrib(GL_ENABLE_BIT)

- mesa: only pop states in glPopAttrib that have been changed since glPushAttrib

- mesa: partially skip glPush/PopAttrib for MSAA textures and texture buffers

- mesa: don’t save gl_shared_state in glPushAttrib

- mesa: don’t push/pop default texture attributes redundantly

- mesa: pop all textures up to NumCurrentTexUsed, not just MaxTextureUnits

- mesa: don’t count buffer references for the context that created them

- radeonsi: set current_rast_prim at bind time for tess and GS

- radeonsi: simplify the NGG culling condition in si_draw_vbo

- radeonsi: tune NGG shader culling vertex threshold for each chip

- radeon: decrease the size of radeon_cmdbuf by switching prev fields to uint16

- Revert “gallium/u_vbuf: skip draws with 0 vertices”

- gallium/u_vbuf: skip non-indirect draws with 0 vertices

- winsys/amdgpu,radeonsi: add HUD counters for how much memory is wasted by slabs

- winsys/amdgpu: clean up slab alignment code, handle small buffers better

- winsys/amdgpu,pb_slab: add slabs with 3/4 of power of two sizes to save memory

- winsys/amdgpu: expand the slab allocation range to [256 B, 1 MB]

- winsys/amdgpu: optimize out conditionals in amdgpu_lookup_buffer

- winsys/amdgpu: remove amdgpu_winsys_bo::num_cs_references to remove atomics

- winsys/amdgpu: pack amdgpu_winsys_bo::is_shared and protect it by a mutex

- winsys/amdgpu: move amdgpu_winsys_bo::cpu_ptr into the u.real union

- winsys/amdgpu: move amdgpu_winsys_bo::is_shared to the u.real union

- winsys/amdgpu: move amdgpu_winsys_bo::is_user_ptr to the u.real union

- winsys/amdgpu: move amdgpu_winsys_bo::use_reusable_pool to the u.real union

- winsys/amdgpu: don’t inc/dec num_active_ioctls for backing BOs of sparse BOs

- winsys/amdgpu: don’t set unused usage for backing BOs of sparse BOs

- winsys/amdgpu: try not to skip any code with RADEON_NOOP=1 to test CPU perf

- tgsi_to_nir: translate SAMPLEID

- tgsi_to_nir: translate FBFETCH

- gallium/u_tests: test no-op fragment shader instead of NULL fragment shader

- winsys/amdgpu: disallow pb_cache for backing buffers of sparse buffers

- ac/gpu_info: print use_late_alloc

- ac/gpu_info: rename num_tcc_blocks -> max_tcc_blocks

- ac/gpu_info: add radeon_info::num_tcc_blocks

- ac/gpu_info: remove redundant radeon_info::num_sdp_interfaces

- ac/gpu_info: inline get_l2_cache_size and set cache sizes farther down

- ac/gpu_info: conceal L2 cache sizes

- amd: sort chip enums based on hw revision

- radeonsi: skip s_sendmsg(gs_alloc_req) for NGG passthrough on new chips

- radeonsi: add debug options nodisplaytiling and nodisplaydcc

- amd: update addrlib

- mesa: optimize draw index type checking

- mesa: precompute all valid primitive types at context creation

- mesa: precompute draw time prim validation during state changes

- mesa: move check_valid_to_render call into _mesa_valid_prim_mode

- mesa: fold most of check_valid_to_render into _mesa_update_valid_to_render_state

- mesa: inline check_valid_to_render

- mesa: add skeleton code for DrawPixels/CopyPixels/Bitmap precomputed validation

- mesa: don’t report 1 for GL_VALIDATE_STATUS if user didn’t validate pipeline

- mesa: move shader pipeline validation from draws to state changes

- mesa: move sampler uniform validation from draws to state changes

- mesa: move some uniform debug code from draws to state changes

- mesa: move FBO completeness checking from draws to state changes

- mesa: move ARB program and integer FBO validation from draws to state changes

- mesa: move GL_FILL_RECTANGLE validation from draws to state changes

- mesa: move blending validation from draws to state changes

- mesa: inline _mesa_valid_to_render now that it doesn’t do validation

- mesa: optimize the dual source blend error checking using a bitmask

- mesa: remove VERBOSE_DRAW

- mesa: remove optional draw validation code to increase performance

- mesa: call _mesa_update_state() before validation

- mesa: remove an optional GL error about mapped buffers during execution

- mesa: skip MultiDrawArrays with primcount == 0

- mesa: don’t skip draws with count == 0 or numInstances == 0

- mesa: add a separate valid primitive mask just for glDrawElements

- mesa: move disallowed TFB in DrawElements on GLES from draws to state changes

- mesa: validate numInstances in common functions to unify code

- mesa: optimize set_varying_vp_inputs by precomputing the conditions

- mesa: move gl_context::varying_vp_inputs into ctx->VertexProgram._VaryingInputs

- mesa: set _DrawVAOEnabledAttribs only when it changes

- mesa: precompute _mesa_get_vao_vp_inputs

- mesa: precompute draw time determination of enabled vertex arrays

- mesa: gather errors and call _mesa_error only once in validate_Draw

- mesa: inline _mesa_set_draw_vao and set_varying_vp_inputs for draw calls

- mesa: inline draw validate functions

- mesa: add debug code to catch missing _mesa_update_valid_to_render_state calls

- ac/surface: use family_id so as not to crash with SI_FORCE_FAMILY in addrlib

- radeonsi: for tess, determine the minimum num_patches before optimizing tg size

- radeonsi: improve comments in si_emit_derived_tess_state

- radeonsi: allocate filled_size for streamout targets in set_streamout_buffers

- radeonsi: do late NIR optimizations after uniform inlining

- radeonsi: fix the value of uses_bindless_samplers

- radeonsi: gather info about bindless images and memory stores with strstr(intr)

- radeonsi: gather shader info about indirect UBO/SSBO/samplers/images

- radeonsi: gather shader info about VMEM usage for MEM_ORDERED

- radeonsi: set MEM_ORDERED optimally

- glthread: assume all parameters are fixed if marshal_sync is present

- glthread: don’t declare pointers with const in unmarshal functions

- glthread: don’t sync when using pixel buffer objects

- glthread: ignore the return value of glUnmapBuffer, don’t sync, and return true

- i915: use align_calloc for the context to fix m32 crashes

- radeon,r200: use align_calloc for the context to fix m32 crashes

- nouveau_vieux: use align_calloc for the context to fix m32 crashes

- mesa: remove unnecessary NewState flagging for glPopAttrib(GL_ENABLE_BIT)

- mesa: move fixed-func-related _mesa_update_state code closer together

- mesa: split _NEW_LIGHT into 3 flags: _NEW_LIGHT_(FF_PROGRAM|CONSTANTS|STATE)

- mesa: rework _MESA_NEW_NEED_EYE_COORDS to reduce fixed-func program updates

- mesa: don’t compute the inverted projection matrix if not used

- mesa: don’t compute the ModelView * Projection matrix if not used

- mesa: add _NEW_MATERIAL to reduce the weight of _NEW_LIGHT_CONSTANTS

- mesa: don’t update derived material values in _mesa_update_state and elsewhere

- mesa: remove _NEW_VARYING_VP_INPUTS in favor of _NEW_FF_(VERT|FRAG)_PROGRAM

- mesa: remove _NEW_LIGHT_FF_PROGRAM in favor of _NEW_FF_(VERT|FRAG)_PROGRAM

- mesa: don’t push/pop ctx->Texture._* derived states

- mesa: remove the fixed-func vert prog dependency on all texture states

- mesa: sort state parameters for ffvp to enable better parameter merging

- mesa: merge STATE_LIGHTPROD parameters

- mesa: merge STATE_LIGHT_ATTENUATION and STATE_LIGHT_POSITION_* parameters

- vbo: optimize copy_to_current functions

- vbo: don’t call update_color_material in copy_to_current if it’s a no-op

- mesa: be precise about when to set _NEW_CURRENT_ATTRIB and _NEW_MATERIAL

- mesa: move _mesa_update_pixel out of _mesa_update_state

- mesa: only update fixed-func programs on texture matrix enablement changes

- mesa: don’t update fixed-func vert prog on irrelevant _NEW_TRANSFORM changes

- mesa: don’t update fixed-func programs on irrelevant _NEW_POINT changes

- mesa: don’t update fixed-func programs on irrelevant _NEW_FOG changes

- mesa: don’t update fixed-func programs on irrelevant _NEW_RENDER_MODE changes

- mesa: don’t update the fixed-func frag prog on irrelevant _NEW_COLOR changes

- mesa: don’t update tnl spaces on irrelevant _NEW_POINT/TEXTURE_STATE changes

- mesa: skip a subset of _mesa_update_state if no relevant flags are set

- radeonsi: don’t index si_context::shaders with enum gl_shader_stage

- ac/llvm: fix ac_build_atomic_rmw with LLVM 13

- radeonsi: don’t crash on NULL images in si_check_needs_implicit_sync

- ac/llvm: add support for 16-bit source operands for samplers

- ac/llvm: implement 16-bit and 64-bit fpow correctly

- ac/llvm: fix visit_load_ubo_buffer to use SMEM for 16 bits instead of VMEM

- ac/llvm: add type parameter into ac_build_buffer_load to fix 16-bit TES inputs

- ac/llvm: open code fpow on LLVM 12 using fmul.legacy

- driconf: add performance tweaks for viewperf

- ac/surface: select best swizzle mode for 3D sampler performance

- ac,radeonsi: add sampler changes for Aldebaran

- ac: set the TCC line size for Aldebaran

- ac/llvm: unpack thread IDs on Aldebaran

- ac: handle bigger instruction prefetch for Aldebaran

- ac,radeonsi: use correct VGPR granularity on Aldebaran

- ac: remove switch cases for pc_lines for compute-only chips

- radeonsi: enable RGP on gfx10.3

- gallium/u_threaded: don’t sync in create_stream_output_target

- gallium: add pipe_screen::num_contexts for skipping mutex locking in util_range

- radeonsi: update pipe_screen::num_contexts

- ac/llvm: handle demote in LLVM 13 that just added support for it

- ac/gpu_info: fix more non-coherent RB and GL2 combinations

- radeonsi: use pipe_sampler_state::border_color_is_integer to simplify stuff

- mesa: fix Blender crash due to optimizations in buffer reference counting

- mesa: add assertions for buffer reference counts

- mesa: fix a oldNum typo in reallocation in _mesa_reserve_parameter_storage

- mesa: don’t overallocate ParameterValues 4 times (v2)

- mesa: clear reserved parameter storage because it’s stored in the shader cache

- mesa: fix parameter reservation size

- st/mesa: add a driconf option to transcode ETC2 to DXTC

- util: add most missing formats with reversed RGB channel order

- util: fail assertion in util_format_linear if it can’t translate SRGB format

- util: add new helper util_format_rgb_to_bgr

- radeonsi: select the optimal micro tile mode at clear regardless of fast clear

- radeonsi: add a fast path for MSAA resolving with RGB -> BGR swizzling

- amd/addrlib: add back the incorrect original DCC checking

- amd/addrlib: prevent defining regparm differently

- amd/addrlib: define endianess differently

- amd: update addrlib

- ac/llvm: don’t set unsupported xnack options to fix LLVM crashes on gfx6-8

- radeonsi: disable sparse buffers on gfx7-8

- radeonsi: set the clear/copy cache policy based on L2 cache size

- radeonsi: don’t insert start/stop pipeline stat events if it has no effect

- radeonsi: never set DISABLE_WR_CONFIRM for CP DMA clears and copies

- radeonsi: rename internal compute sync flags

- radeonsi: remove unused SI_CP_DMA_SKIP_* definitions

- radeonsi: merge CP DMA flags with internal compute flags

- radeonsi: inline clear_buffer in si_screen_clear_buffer

- radeonsi: set compute/cpdma sync flags in the outermost caller

- radeonsi: reduce syncing in si_dcc_decompress

- radeonsi: reduce syncing for initializing new buffers

- radeonsi: reduce syncing in si_compute_expand_fmask when it’s already idle

- radeonsi: don’t do an L2 flush in compute_do_clear_or_copy if we’re not syncing

- radeonsi: rename and apply SI_OP_CPDMA_SKIP_CACHE_FLUSH to compute as well

- radeonsi: use the optimal packet order before draw packets for VS flushes too

- radeonsi: add SI_CONTEXT_PFP_SYNC_ME to skip syncing PFP for image operations

- radeonsi: return false from si_is_format_supported instead of NULL

- radeonsi: don’t use constbuf and set cache policy for 12-byte clear shader

- radeonsi: don’t use a constant buffer for the copy_image compute shader

- radeonsi: decrease the maximum variable block size

- radeonsi: pack the variable block size in one SGPR, 10 bits per component

- amd: fix parsing the last dword of DMA_DATA packets

- ac/surface: add CMASK info for level 0

- radeonsi: determine accurately whether the framebuffer state has DCC MSAA

- radeonsi: remove si_screen::dcc_msaa_allowed

- radeonsi: parallelize CMASK and DCC clears

- radeonsi: return success/failure from si_alloc_separate_cmask

- radeonsi: add num_layers variable into si_do_fast_color_clear

- radeonsi: group and parallelize all clears in si_texture_create_object

- radeonsi: set better default depth clear value

- radeonsi: enable HTILE with mipmapping on gfx9+

- radeonsi: unset PIPE_CLEAR_* flags for non-existent buffers

- radeonsi: turn the loops over color buffers into while loops in si_clear

- radeonsi: don’t use CP DMA for clears/copies except for very small ones

- ac/surface/tests: move shareable code into ac_surface_test_common.h

- radeonsi: fix si_compute_copy_image if DCC decompression happens before a copy

- gallium/pb: pass an optional winsys pointer to the buffer destroy function

- winsys/radeon: rename radeon_bo_reference -> radeon_ws_bo_reference

- radeon_winsys.h: add a new function radeon_bo_reference that takes a winsys

- radeon_winsys.h: add a winsys parameter to most winsys buffer functions

- winsys/amdgpu: remove amdgpu_winsys_bo::ws

- winsys/amdgpu: add amdgpu_cs::ws to reduce dereferences

- gallium/pb: change pb_buffer::alignment to alignment_log2

- gallium/pb: remove 8 bytes from pb_buffer by packing variables

- winsys/amdgpu: remove another 8 bytes from amdgpu_winsys_bo by packing better

- ac/surface: split dcc level info from surface_info to save space

- ac/surface: overlap color and Z/S fields using a union in legacy_surf_layout

- ac/surface: change legacy_surf_level::offset to 32-bit offset_256B shifted by 8

- ac/surface: inline and reorder gfx9_surf_flags for better packing

- ac/surface: pack gfx9_surf_meta_flags better

- ac/surface: pack gfx9_surf_layout:resource_type better to save 8 bytes

- ac/surface: pack radeon_surf::num_htile_levels better

- ac/surface: pack alignments by storing log2 in radeon_surf

- ac/surface: overlap color and Z/S fields using a union in gfx9_surf_layout

- ac/surface: pack radeon_surf better

- ac/surface: unify htile_levels and dcc_levels as meta_levels

- ac/surface: unify htile_* and dcc_* fields as meta_* fields

- ac/surface: use named “color and “zs” structures in unions

- radeonsi: don’t cache FMASK transactions from CB in L2

- radeonsi: restructure DCC disablement into a switch

- radeonsi: allow trivial DCC clears for shared textures with DCC constant encode

- radeonsi: implement per-level DCC and CMASK fast clears for gfx10+

- radeonsi: implement Z/S fast clear for non-zero mipmap levels

- radeonsi: parallelize Z/S conversion into TC-compatible with fast color clears

- radeonsi: clean up some mess around htile_stencil_disabled

- radeonsi: add si_can_fast_clear_depth/stencil helpers

- radeonsi: indent the code for TC-compatibility HTILE transition

- radeonsi: implement fast Z/S clears using clear_buffer on HTILE

- radeonsi: enable DCC fast clears for non-zero mipmap levels and 0/1 clear values

- radeonsi: when transitioning to TC-compat HTILE, try to do a proper clear

- radeonsi: do Z-only or S-only HTILE clear using a compute shader doing RMW

- radeonsi: refine fast clears for small buffers, always use them for large HTILE

- radeonsi: try to fix DCC coherency issues with DCC decompression

- radeonsi: allow DCC_DECOMPRESS via CB with MSAA textures

- ac/surface: only apply the 3D swizzle mode tuning to gfx10+

- ac/surface/tests: test Sienna Cichlid and Navy Flounder

- ac/surface/tests: fix a random segfault in the modifier test

- amd/addrlib: expose DCC address equations to drivers

- meson: add an optional OpenMP dependency for AMD tests

- ac/surface: add a test of DccAddrFromCoord prototype outside of addrlib

- ac/surface: limit the number of swizzle modes that can have displayable DCC

- ac,radeonsi: rewrite DCC retiling without the DCC retile map

- radeonsi: fix and enable full DCC with MSAA 2x on gfx9

- radeonsi: implement DCC MSAA 4x/8x fast clear using DCC equations on gfx9

- radeonsi: enable DCC for MSAA 4x and 8x on gfx9

- radeonsi: move binding the internal compute shader into si_launch_grid_internal

- radeonsi: unify internal compute with SSBOs in si_launch_grid_internal_ssbos

- compiler: move TEXTURE_COORD/VERTEX_GENERIC_ATTRIB limits into shader_enums.h

- nir: add src and dest types to all IO loads and stores for mediump

- nir: add new VARYING_SLOTs and shader info for packed 16-bit varyings

- nir: add many passes that lower and optimize 16-bit input/outputs and samplers

- glsl: pack 16-bit uniforms in the NIR linker

- mesa: implement glUniform for packed FP16 uniforms

- mesa: implement glGetUniform for FP16 uniforms

- mesa: implement glGetActiveUniform for FP16 uniforms

- glsl: lower mediump uniforms to FP16 based on an option

- gallium: add PIPE_SHADER_CAP_FP16_CONST_BUFFERS for FP16 uniforms

- st/mesa: fix nir_lower_io if it’s done right after IO vectorization

- ac/llvm: implement 16-bit packed VS outputs and FS inputs

- radeonsi: implement 16-bit VS->PS varyings

- radeonsi: implement 16-bit VS inputs

- radeonsi: optimize and legalize 16-bit samplers

- radeonsi: kill 16-bit VS outputs if PS doesn’t use them or doing Z-only draw

- radeonsi: enable FP16 for mediump on gfx9+ if radeonsi_fp16=true

- nir: handle mediump varyings in varying compaction helpers

- radeonsi: don’t decompress DCC for float formats in si_compute_copy_image

- radeonsi: fix automatic DCC retiling after DCC clear and DCC decompression

- radeonsi: fix automatic DCC retiling after compute image stores

- radeonsi: make the gfx9 DCC MSAA clear shader depend on the number of samples

- util: fix (re-enable) L3 cache pinning

Marek Vasut (2):

- compiler/nir: Increment shader input count and mark as used when adding new gl_PointCoord

- etnaviv: Fix point sprite Z,W coordinate replacement

Mark Janes (12):

- intel: Print GPU timing data based on INTEL_MEASURE

- anv: enable timestamp for INTEL_MEASURE

- anv: implement anv layer of INTEL_MEASURE

- blorp: add hook for INTEL_MEASURE

- anv: add hooks to call INTEL_MEASURE

- iris: implement iris layer of INTEL_MEASURE

- iris: add a iris_context reference to iris_batch

- intel: stop tracking submission state in INTEL_MEASURE

- intel: support secondary command buffers in INTEL_MEASURE

- intel: combine common gather routines in INTEL_MEASURE

- intel: check setuid before writing output file in INTEL_MEASURE

- Revert “blorp/gen12: Don’t use aux address if implicit CCS”

Matt Turner (8):

- docs/freedreno: Fix a few typos

- turnip: Remove unused TU_DEBUG_IR3 flag

- docs: Mark VK_KHR_maintenance1 as done on turnip

- ci: Use CI_PROJECT_ROOT_NAMESPACE

- tu: Skip tu_tiling_config_update_tile_layout() if not using gmem

- ci: Disable panfrost g52

- Remove Scons leftovers

- ir3: Don’t count (nopX) towards the wrong category

Matti Hamalainen (2):

- gallium: Fix broken trace XML output

- gallium/tools: update trace scripts to Python 3

Mauro Rossi (29):

- android: r600/sfn: add sfn_nir_lower_64bit.cpp to Makefile.sources

- android: freedreno/hw/isa: Add description of ir3 ISA

- android: freedreno/ir3: Switch over to new encoder/decoder

- android: pan/mdg: create nir pass to lower image coord bitsize

- android: intel: Print GPU timing data based on INTEL_MEASURE

- android: anv: implement anv layer of INTEL_MEASURE

- android: iris: implement iris layer of INTEL_MEASURE

- android: radv: port to using common dispatch code.

- android: radv: fix building error in radv_android.c

- android: util/fossilize_db: add missing sources to Makefile.sources

- android: ac/rgp: fix building error

- android: mesa: Move the FXT1 compressor/decompressor to util/

- android: pan/bi: reorder static dependencies in gallium/dri

- driconf: avoid Non-ASCII character error in driconf_static.py

- android: driconf: Generate a static table when no xmlconfig

- android: i965: Rename files with “intel_” prefix to “brw_”

- android: util: create some standalone compression helpers

- android: anv: add libcutils shared dependency

- android: r600/sfn: fix sfn_nir_algebraic.c gen rules

- android: vulkan/util: add vk_descriptors.{c,h} to Makefile.sources

- android: amd/addrlib: define endianess to build

- android: panfrost: Use the blend shader cache attached to the device

- vulkan/util: Fix implicit declaration of ffs for Android build

- android: anv: Remove anv_intel.c from Makefile.sources

- android: anv: fix build error in anv_android.c

- compiler/glsl: fix include for Android build

- android: panfrost/lib: add pan_cs.c to Makefile.sources

- android: gallium/radeonsi: add nir include path

- android: amd/common: add nir include path

Michael Tang (5):

- microsoft/compiler: Make resource_state_manager only build with_gallium_d3d12

- util: Make os_read_file use O_BINARY on Windows

- microsoft/spirv_to_dxil: Fix spirv2dxil I/O to use binary mode

- microsoft/spirv_to_dxil: Add lowering pass to handle gl_PerVertex

- microsoft/spirv_to_dxil: Add extra lowering functions according to the docs on nir_inline_functions

Michel Dänzer (53):

- ci: Remove .gitlab-ci/meson-build.bat

- ci: Use meson test directly instead of ninja test

- wsi/x11: Use get_screen_resources_current in wsi_x11_detect_xwayland

- ci: Enable process isolation for softpipe & freedreno piglit jobs

- ci: Use GNU time as meson test wrapper

- ci: Run ‘time’ in the background and propagate signals to test process

- ci: Fix MESA_TEMPLATES_COMMIT value

- ci: Update to newer ci-fairy

- ci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_shader

- ci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_gl

- ci: Set GALLIVM_PERF=nopt,no_filter_hacks for llvmpipe-gles2

- ci: Use MESA_ namespace for image variables in Windows jobs

- ci: Use MESA_IMAGE_TAG everywhere

- ci: Move FDO_DISTRIBUTION_TAG assignment to template

- ci: Add and use .set-image template to construct docker image name

- ci: Incorporate base image tag into dependent image tags

- ci: Append build image tag to LAVA tag used for minio path

- ci: Add trailing slash to path for documentation preview

- ci: Restrict meson-gallium job to gstreamer runners

- ci: Disable scons-win64 job

- ci: Move meson-build.sh to meson/build.sh

- ci: Drop SIGINT handling from meson test wrapper script

- ci: Move /usr/bin/time check from meson test wrapper to build script

- aco/tests: Use _exit in child process

- ci: Add strace to the x86_build docker image

- ci: Run meson tests in strace if it’s available and can be used

- ci: Don’t run meson tests in strace for meson-mingw32-x86_64 job

- intel/tools: Use subprocess.Popen to read output directly from a pipe

- Revert “ci: Restrict meson-gallium job to gstreamer runners”

- glcpp: Fully initialize struct gl_context

- ci: Disable valgrind in some build jobs

- glsl/tests: Bump glcpp valgrind test timeout to 240 seconds

- glsl/tests: Don’t use tempfiles

- glsl/tests: Use exit code 126 to detect valgrind errors

- Revert “ci: disable glcpp tests for now”

- Revert “meson: add enable-glcpp-tests option”

- Revert “glsl/test: Don’t run whitespace tests in parallel”

- ci: Remove INCLUDE_PIGLIT

- ci: Build ARM baremetal rootfs in native container

- ci: Merge ARM testing docker images to a single arm_test one

- wsi/x11: Wait for fences with IMMEDIATE on Xwayland

- ci: Fix HTML summary path for piglit OpenCL job artifacts

- intel/blorp: Initialize texture_data[0]

- ci: Do not install armhf LLVM packages

- ci: Bump LLVM/clang from 10 to 11

- ci: Move docker images from Debian buster to bullseye

- ci: Install librenderdoc from Debian bullseye

- ci: Install spirv-tools from Debian bullseye

- ci: Install llvm-spirv from Debian bullseye

- ci: Install GLVND from Debian bullseye

- ci: Install Rust & cargo from Debian for x86_test* images

- ci: Do not append ci-templates commit hash to Windows docker image tag

- ci: Update to latest ci-templates

Michel Zou (25):

- vulkan/lavapipe: add missing VKAPI_ATTR/CALL

- vulkan: Fix windows api conflict

- zink: Fix win32 build

- vulkan: Fix windows api conflict

- meson: invalid keyword argument dependencies

- zink: fix win32 build

- util: fix gcc vsnprintf overflow

- glapi: keep declspec(thread) msvc-specific

- vulkan: implement wsi_win32 backend

- lavapipe: add mingw32 def file

- lavapipe: set empty dll prefix

- gallium: remove DROP_PIPE_LOADER_MISC

- meson/xmlconfig: win32 regex fallback

- meson: detect winflex/bison only on native win32

- turnip: update features.txt

- lavapipe: update features.txt

- vulkan: fix CreateRenderPass prototype

- swr: extern declaration for win32 intrinsics

- swr: fix win32 intrinsics

- swr: Fix SWR_CONTEXT pre-declaration

- swr: fix unused SplitString warning

- swr: fix deprecated llvm 11 declaration warning

- swr: fix array-bounds warning

- lavapipe: Fix type narrowing

- docs: missing lvp win32surface ext in features.txt

Mike Blumenkrantz (775):

- zink: clamp sampler+samplerview limits

- util/hash_table: optimize rehash for empty table and no-func clears

- util/set: optimize rehash for empty table and no-func clears

- util/set: add the found param to search_or_add

- util/set: split off create() into an init() function

- zink: optimize renderpass hash table

- nir/lower_uniforms_to_ubo: set explicit_binding on uniform_0

- zink: add spirv builder function for runtime array type

- zink: add util function for emitting ntv atomic ops

- zink: add set_shader_buffers pipe_context method

- zink: hook up ssbo shader bindings

- zink: emit ssbo variables in ntv

- zink: modify ubo loading in ntv to work for ssbos

- zink: start supporting atomic shader ops

- zink: split UBOs and samplers into ‘read’ batch references during draw

- zink: flag ssbo buffer resources as having pending writes on batch

- zink: add more usage bits for buffer types

- zink: partially enable SSBO pipe cap

- zink: only emit streamout targets during draw if we have them

- zink: rework framebuffer state

- zink: add batch flag for checking renderpass state

- zink: remove renderpass refcounting

- zink: ralloc zink_framebuffer structs

- zink: rename param in zink_create_framebuffer

- zink: use ‘fb’ variable name for zink_framebuffer objects in zink_framebuffer.c

- zink: decouple renderpass from framebuffer state

- zink: move zink_clear to zink_clear.c

- zink: start to refactor clearing

- zink: handle clears with scissor regions

- zink: break out scissor region testing for clear functions

- zink: break out color/zs no_rp clear into separate functions

- zink: break out some of the u_blitter setup into util function

- zink: add a pipe_context::clear_texture hook

- zink: enable PIPE_CAP_CLEAR_TEXTURE

- zink: reduce blendfactor when alpha_to_one is set

- zink: tweak xfb slot mapping in ntv

- zink: process ubos with location values set as long as they’re actually ubos

- zink: add VK_KHR_driver_properties

- zink: enable WSI-faking for RADV too

- zink: rename zink_context::*image_views -> sampler_views

- zink: add ntv util function for getting image type

- zink: rewrite image/sampler glsl -> vk type functions for robustness

- zink: add spirv_builder function for hexops

- zink: add spirv builder functions for image ops

- zink: add ntv function for emitting variable access decorations

- zink: verify format caps and add storage image usage when possible in creation

- zink: add ‘has_draw’ flag to batch struct

- zink: add a pipe_context::memory_barrier hook

- zink: add shader image support to zink_binding()

- zink: add new ‘sampler_types’ variable to ntv_context struct

- zink: handle image variable types in ntv

- zink: handle more atomic ops in ntv

- zink: handle nir_intrinsic_memory_barrier in ntv

- zink: add nir_var_uniform case to get_storage_class()

- zink: expand ntv array derefs to track image derefs

- zink: add handling for all basic image ops in ntv

- zink: enable early frag test execution in ntv when necessary

- zink: enable image caps in ntv when a shader has images

- zink: handle image descriptors during zink_shader creation

- zink: break out bufferview creation into separate function

- zink: add a pipe_context::set_shader_images hook

- zink: handle shader image descriptor updates during draw

- zink: check if multisample support exists for shader image formats

- zink: export shader image caps using features

- zink: GLSL 420

- docs/features: mark off GL 4.2 for zink

- zink: set PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS

- zink: force per-sample interpolation

- zink: set PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT

- zink: set PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR

- zink: support VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL usage

- zink: add layout member to barrier setup in draw

- zink: support PIPE_FORMAT_X24S8_UINT

- zink: check correct caps for PIPE_CAP_IMAGE_LOAD_FORMATTED

- zink: enable PIPE_CAP_SAMPLER_VIEW_TARGET

- gallium/u_inlines: add helper for simplifying pipe_context::resource_copy_region

- zink: add function for waiting on a specific batch’s fence

- zink: don’t force a renderpass start when setting framebuffer state

- spirv: handle NoContraction in GLSL450 alu ops

- zink: fix streamout for clipdistance

- zink: add a VkExternalMemoryImageCreateInfo for PIPE_BIND_SHARED images

- zink: set lower_mul_2x32_64 when 64bit int support is available

- zink: enable PIPE_CAP_TEXTURE_MIRROR_CLAMP_TO_EDGE

- zink: flag gfx pipeline dirty using newer mechanism

- zink: guarantee surface lifetimes for shader images

- st/bitmap: use GL_CLAMP_TO_EDGE for bitmap samplers

- st/drawpixels: use GL_CLAMP_TO_EDGE instead of GL_CLAMP for samplers

- zink: don’t export PIPE_CAP_MAX_COMBINED_SHADER_BUFFERS value

- zink: add spirv builder function for OpAtomicStore

- zink: flag ssbo buffer resources as having pending writes per stage

- zink: handle null ssbo attachments without crashing

- zink: handle more ssbo ops in ntv

- zink: rework ssbo indexing and binding

- zink: support nir_intrinsic_store_ssbo

- zink: implement get_ssbo_size nir intrinsic

- zink: flatten out ssbo/ubo variable decls in ntv

- zink: export ssbo caps

- Revert “glcpp: disable ‘windows’ tests”

- meson: add enable-glcpp-tests option

- ci: disable glcpp tests for now

- zink: add barrier helper for buffer resources

- zink: add a stage param for buffer resource barriers

- zink: add helper function for checking if access flags include write access

- zink: improve barrier helper for buffer resources and add check for barrier need

- zink: flag previous vertex stages as dirty when toggling a later stage

- zink: add shader key for vs shaders

- zink: flag shaders as needing update when clip_halfz changes

- zink: move tess/geom shader info to vs shader key

- glsl: support 64bit integer loop iterators

- radv: print image array size in debug mode

- zink: move maintenance2 extension to right file

- zink: unify shader image unbind codepath

- zink: be a little more precise about query types in one conditional

- radv: null bo list pointer for null descriptors on update

- radv: zero the bo descriptor array when allocating a new set

- zink: force 4 component formats for samplerview/render textures

- zink: support nir_intrinsic_memory_barrier_buffer

- zink: add defines for compute batch and gfx batch count

- zink: bump resource usage flags to allow 5 batches

- zink: make get_resource_usage() public

- zink: make zink_batch_reference_resource_rw return usage info

- zink: wait on compute batch when necessary during transfer map

- zink: add spirv_builder function for emitting a 3word literal exec mode

- zink: handle COMPUTE bindings in compiler/ntv

- zink: handle COMPUTE setup in ntv

- zink: handle COMPUTE glsl variables

- zink: implement shared load/store nir ops in ntv

- zink: add handling for shared atomic ops in ntv

- zink: handle nir_intrinsic_memory_barrier_shared in ntv

- zink: ignore compute batch when starting/ending batches

- zink: take a pipe_reference param in zink_batch_reference_program

- zink: refactor batch creation

- zink: make allocate_descriptor_set() take more params instead of a gfx_program

- zink: explicitly get shader stage from shader during binding setup in draw

- zink: rename pipeline_cache_entry -> gfx_pipeline_cache_entry

- zink: add compute programs and pipelines

- zink: break out descriptor updating into separate function

- zink: setup compute batch and add handling

- zink: handle memory barriers for compute batch

- zink: handle descriptor set updates for compute operations

- zink: flush gfx/compute batches when the other pipeline needs resource sync

- zink: add launch_grid pipe_context hook for compute handling

- zink: export compute-specific shader/compute caps

- zink: enable compute

- zink: GLSL 430

- features: mark off GL 4.3 for zink

- zink: add spirv_builder wrapper for vote intrinsics

- zink: handle vote intrinsics in ntv

- zink: rework viewport handling

- zink: handle nir_texop_texture_samples

- zink: add a texture barrier hook

- zink: use = and not |= for VkMemoryPropertyFlags during resource creation

- zink: set HOST_COHERENT bit for coherent resource creation

- zink: track persistent, non-coherent, writable transfer map count for resources

- zink: slightly refactor batch resource referencing in update_descriptors()

- zink: flush all resources with persistent maps on work batch before draw/compute

- zink: enable PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT

- zink: rename zink_context::dummy_buffer -> dummy_vertex_buffer

- zink: create dummy xfb buffer

- zink: handle null xfb buffers

- zink: use better mapping for PIPE_FORMAT_X24S8_UINT

- zink: handle nir_intrinsic_load_helper_invocation

- zink: fix xfb buffer refcounting

- zink: add PIPE_BIND_QUERY_BUFFER to the all-purpose resource creation path

- zink: add a get_query_result_resource hook

- zink: enable PIPE_CAP_TGSI_ARRAY_COMPONENTS

- zink: enable PIPE_CAP_QUERY_BUFFER_OBJECT

- zink: GLSL 440

- zink: enable PIPE_CAP_CONDITIONAL_RENDER_INVERTED

- zink: enable PIPE_CAP_CLIP_HALFZ

- zink: enable PIPE_CAP_TGSI_TXQS

- zink: enable PIPE_CAP_TEXTURE_BARRIER

- zink: GLSL 450

- features: mark off GL 4.5 for zink

- zink: add spirv interfaces for bo and image/sampler/push variables

- zink: lower flrp64 and ffma64 when in softfp64 mode

- zink: always use query->type for starting/stopping xfb queries

- zink: make the xfb_query_pool into an array

- zink: break out cpu query reading for qbos into separate function

- zink: put SO_OVERFLOW queries on the primgen list

- zink: support SO_OVERFLOW pipe query types

- zink: fix streamout for tess stage

- zink: flag exact alu op results in ntv with NoContraction

- zink: unset generated TCS if its parent TESS is unset

- zink: hook up cs invocation queries to the compute batch

- zink: add support for pipeline statistics queries

- zink: fix slot mapping for legacy gl io with tess stages

- zink: handle 1bit undef values in ntv

- zink: add handling for ARB_shader_draw_parameters variables in ntv

- zink: create a struct for tracking push constant layout

- zink: rework tcs injection to be more compatible with new push const struct

- zink: add push constant value to indicate whether the current draw is indexed

- zink: wrap shader gl_BaseVertex access with a bcsel based on push constant state

- zink: add a draw_id param to vs push constants

- zink: add a vs shader key for rewriting gl_DrawID

- zink: break out push constant creation in compiler and add drawid value

- zink: rewrite drawid based on shader key value

- zink: add util function for submitting the compute batch

- zink: enable PIPE_CAP_TGSI_VOTE

- zink: enable PIPE_CAP_DRAW_PARAMETERS

- zink: enable PIPE_CAP_POLYGON_OFFSET_CLAMP

- zink: enable PIPE_CAP_QUERY_SO_OVERFLOW

- zink: enable pipeline statistics cap

- zink: PIPE_CAP_GL_SPIRV

- zink: GLSL 460

- features: mark off GL 4.6 and ES 3.1 for zink

- zink: support nir_intrinsic_group_memory_barrier

- zink: fix device codegen extension detection

- zink: add nir_intrinsic_memory_barrier_image handling

- zink: use nir_shader_instructions_pass for draw params pass

- zink: add flag for no-oping fence finish

- zink: hook up valid_buffer_range for buffer resources using util_range

- zink: create a VkPipelineCache object on the screen and use it

- zink: add a disk cache for pipeline objects

- gallium/trace: add a pipe_screen::get_compiler_options method

- zink: handle dual blending override from driconf

- zink: move command pool to the batch

- nir/lower_tex: rewrite tex/txb -> txd/txl before saturating srcs

- mesa/st: add pipe_sampler_state::border_color_is_integer

- mesa/st: add PIPE_CAP_GL_CLAMP

- zink: enable GL_CLAMP cap

- gallium/trace: remove transfer_map assert

- zink: add helper function for getting pipeline stage from shader stage

- zink: set buffer resource barriers for descriptor resources in update_descriptors()

- zink: rework xfb counter resource barriers

- zink: rework xfb barrier transitions when reusing as vertex inputs

- zink: remove aspect param from zink_resource_barrier

- zink: add a VkPipelineStageFlags param to zink_resource_barrier()

- zink: add helper for image resource barriers and avoid unnecessary barriers

- zink: use define for max descriptor array size

- zink: add generic wrapper for checking whether a resource needs a barrier

- zink: avoid emitting unnecessary pipeline barriers during update_descriptors

- zink: break out barrier transitioning in update_descriptors

- zink: combine resource barriers where possible during update_descriptors

- zink: take struct zink_batch param instead of direct cmdbuf in barrier helpers

- zink: assert batch is not in a renderpass when emitting pipeline barrier

- zink: add barriers for index and draw param buffers

- zink: add access param for image resource barriers

- zink: add access info for update_descriptor image barriers

- zink: add batch references for resources in clear functions

- zink: improve barrier usage for clear functions

- zink: zink_resource_barrier -> zink_resource_image_barrier

- zink: add general zink_resource_barrier() wrapper

- zink: be more explicit with image barriers for copy operations

- zink: fix surface creation for cube slices

- zink: tag some missing ES features

- zink: update relnotes

- zink: just call context destructor on creation fail

- zink: add buffer barriers for resource_copy_region

- zink: break out buffer copying into util function with batch param

- zink: just end the current renderpass in zink_batch_no_rp()

- zink: break out even more of zink_blit state saving

- zink: use vkGetFenceStatus when we’re obviously checking for status

- zink: fix buffer resource usage flags

- zink: break out query result buffer copying into util function

- zink: simplify some of the qbo direct buffer write code

- zink: better handling for availability queries on qbos when query/resource is busy

- zink: improve batch flushing for queries when compute batches are involved

- zink: always use 64bit flag for query results

- zink: handle scissor+viewport states dynamically if extension is available

- zink: remove ‘scissors’ member of viewport state

- zink: always set VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT for non-staging resources

- zink: add available|visible masks to all barriers in ntv

- zink: set conformant ubo/ssbo size limits

- zink: destroy renderpass objects on context destroy

- zink: rename ‘has_draw’ flag on batches and set it when the batch is used

- zink: move gfx pipeline creation closer to the bind point

- zink: only reset pipeline hash conditionally when updating fb state

- zink: simplify barrier usage

- zink: beef up zink_transfer_flush_region

- zink: only wait on last write-batch for resources during transfer_map

- zink: change some transfer_map cases of waiting on cs batch to flushing cs

- zink: handle PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE in transfer_map for buffers

- zink: update ci results

- zink: disable some builtin-gl-sample-mask sample shading tests on ci

- zink: actually disable sample mask tests on ci

- lavapipe: fix color-only renderpass clears

- zink: ralloc the main context

- zink: create framebuffer and renderpass objects just before vkCmdBeginRenderPass()

- zink: defer pipe_context::clear calls when not currently in a renderpass

- zink: also defer fb clears when conditional render is active

- zink: break out region overlap testing function into helper

- zink: add helper for converting pipe_box -> u_rect

- zink: add another helper for checking whether one rect covers another

- zink: break out fb clear apply into helper function

- zink: add helper for applying/discarding clears based on a rect

- zink: discard pending clears during blit/copy if we’ll overwrite the data

- zink: add yet another clear helper, this time for applying overlap regions

- zink: optimize the remaining read cases of applying pending clear calls

- zink: move all the clear stuff to zink_clear.h

- zink: always do full-fb clears in renderpass begin when possible

- zink: ci changes

- zink: improve descriptor set oom handling

- zink: ci updates

- zink: set PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK

- zink: force 128 fs input components on intel drivers

- zink: add some spirv builder functions for spec constants

- zink: support gl_LocalGroupSize

- zink: add more ci flakes

- util/bitscan: add u_foreach_bit macros

- v3dv: remove for_each_bit() macro

- radv: for_each_bit -> foreach_bit

- freedreno/vulkan: for_each_bit -> foreach_bit

- anv: for_each_bit -> foreach_bit

- zink: use 0 as default for spec constants

- zink: no-op descriptor updating for draws without descriptors

- nir/texcoord_replace: add a yinvert param

- zink: store prim mode to context during draw

- zink: handle point sprite

- zink: ci updates

- zink: avoid memset during update_descriptors() for resources refs

- zink: move samplerview referencing around in update_descriptors()

- zink: reorder zink_bind_vertex_buffers()

- zink: create a single fence per batch on startup and then reuse

- zink: only flush batches in pipe_context::flush if they actually have work

- zink: add a define for compute batch count

- zink: add util function for returning previous batch

- zink: handle PIPE_FLUSH_DEFERRED

- zink: handle VK_IMAGE_LAYOUT_PRESENT_SRC_KHR barriers

- zink: set VK_IMAGE_LAYOUT_PRESENT_SRC_KHR on fb resources at eof flush

- zink: setup CmdBindVertexBuffers2EXT member in screen for dynamic state

- zink: make dynamic state usage in pipeline creation more explicit/flexible

- zink: use dynamic vertex buffer strides

- zink: rename zink_context::buffers -> vertex_buffers (and usage mask)

- zink: add zink_program struct as a base class for compute/gfx structs

- zink: use zink_program in zink_batch_reference_program()

- zink: ralloc zink program structs

- zink: unref programs last in batch reset

- zink: properly size descriptorset layout binding stack array

- zink: increment batch->descs_used during update_descriptors flushing

- zink: do batch-program tracking after possibly cycling batch in update_descriptors()

- zink: add spirv builder methods for OpImageQueryLevels

- zink: hook up nir_texop_query_levels

- zink: relax tessellation shader reqs

- zink: ci updates

- zink: fix dynamic bo lowering for ssbo stores

- zink: pre-fetch all format properties during screen init

- zink: use pre-fetched format properties everywhere

- zink: don’t start renderpasses during descriptor update

- zink: add more usage bits for buffer resource creation

- zink: handle null src for fb refs

- zink: track all framebuffers per batch

- zink: store total memory size on zink_screen

- zink: track resource mem usage per batch

- zink: force batch flush if batches are using more than 1/10 total system memory

- mesa/st: clamp scissored clear regions to fb size

- mesa/st: no-op scissored clear calls with size zero

- zink: handle GLSL_SAMPLER_DIM_EXTERNAL in ntv

- zink: ci updates

- mesa/st: even better no-oping for clears

- zink: apply only the pending zs clear bits during deferred clears

- zink: enable PIPE_CAP_CLEAR_SCISSORED

- zink: export PIPE_CAP_TGSI_VS_LAYER_VIEWPORT

- zink: use staging resource for write transfer_map in order to not stall

- zink: ci updates

- zink: rewrite macro for getting KHR device functions

- zink: add vk/spirv caps/extension for shader LAYER variable

- zink: remove ntv streamout assert

- zink: fix streamout emission for super-enhanced layouts

- zink: fix slot mapping for fat io variables

- zink: fix location usage for explicit xfb outputs

- zink: run more nir passes for tess shaders

- zink: stop allocating xfb slot map

- zink: handle direct xfb output from output variables

- zink: evaluate existing slot map during program init and force new map as needed

- zink: rename variable in update_so_info()

- zink: use info.has_transform_feedback_varyings to determine xfb enablement

- zink: pass so_info directly to update_so_info()

- zink: use slightly stricter check for update_so_info() callsite

- zink: only export necessary xfb outputs to ntv

- zink: don’t pass so_info to ntv at all unless it’s necessary

- zink: unref ctx->framebuffer on context destroy

- zink: fix instance/device versioning (for real this time)

- zink: simplify some update_descriptor code

- zink: move descriptor sets/pools from batches to programs

- zink: store and reuse descriptorsets after batch completion

- zink: move descriptor set alloc function to zink_program.c

- zink: use more precise sizing for descriptor pools

- zink: add helper function for cycling a batch

- zink: even better handling for descriptor oom

- zink: remove flushes for batch descriptor use

- zink: add bucket allocating for descriptor sets

- zink: add scaling factor for descriptor set bucket allocations

- zink: add caching for descriptor sets

- zink: add second level cache for descriptor sets

- zink: move streamout to draw_vbo

- zink: reorder descriptor barrier applying during updating

- zink: move surface refs to the end of descriptor updating

- zink: split descriptor sets based on usage

- zink: use dynamic offsets for first ubo

- zink: introduce descriptor states

- zink: add a null sampler view descriptor hash to the screen

- zink: pre-hash sampler views and states

- zink: store last-used descriptor set for each type of set for quick reuse

- zink: actually flag all used resources as used during update_descriptors

- zink: add program pointer to desc set struct

- zink: move descriptor set allocation near the top of update_descriptors

- zink: only batch-reference the program in use once per descriptor update

- zink: improve descriptor cache invalidation

- zink: add flag for recycled descriptor sets

- zink: don’t double iterate all the per-batch sets on reset

- zink: add VkPipelineLayout to zink_program meta struct

- zink: split out ubo descriptor updating

- zink: break out ssbo descriptor updating

- zink: break out sampler descriptor updating

- zink: break out image descriptor updating

- zink: deduplicate VkWriteDescriptorSet setup

- zink: break out descriptor stuff into new files

- zink: break out all the descriptor pool/layout stuff into a new struct

- zink: change program pointer on struct zink_descriptor_set to pool pointer

- zink: track number of sets currently allocated per descriptor pool

- zink: move descriptor type to pool object from set

- zink: allow reuse of zink_descriptor_pools between programs

- zink: remove intermediate func for descriptor set getting

- zink: simplify check for knowing whether descriptor updating is needed

- zink: pre-size descriptor transition hash table

- zink: move descriptor binding out of the update codepath

- zink: reuse descriptor barriers across draws

- zink: track resource count on descriptor pool object

- zink: directly use resource count from pool instead of accumulating every time

- zink: remove struct zink_descriptor_resource from descriptor updating

- zink: don’t create descriptor barrier hash tables for cached descriptor set

- zink: always use VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL for sampler bindings

- zink: remove image layouts from descriptor states

- zink: avoid hashing states without descriptors

- zink: fix arrays of texel buffer descriptors

- zink: ci updates

- zink: move vertex_buffers_enabled_mask to non-hashed part of pipeline state

- zink: optimize pipeline hashing

- zink: implement an extremely dumb resource memory cache

- zink: ci updates

- zink: remove debug printf

- lavapipe: fix push descriptor set indexing

- lavapipe: set more resource bind flags using image/buffer usage bits

- zink: move buffer<->image copying to pipe_context::resource_copy_region hook

- zink: remove extraneous flush in transfer_map_region_flush

- zink: ci updates

- zink: optimize resource usage tracking

- zink: use _mesa_set_search_and_add() for set management

- zink: ralloc screen objects

- zink: implement a surface cache

- zink: use a safer iteration for fb surfaces during rp init

- zink: determine whether the vulkan driver requires mesa flush wsi

- zink: force mesa flush implicit fencing on ANV

- zink: force explicit fence only on first frame flush

- zink: use internal api for first-frame fence

- zink: return true from program ref functions upon free

- zink: unset ctx->program pointers when an unref destroys the object

- zink: stop leaking programs

- vk/util: add unified shader module struct/functions

- vk/util: add a util macro for initializing stack vk_shader_module structs

- lavapipe: use common interfaces for shader modules

- radv: use common interfaces for shader modules

- v3dv: use common interfaces for shader modules

- tu: use common interfaces for shader modules

- anv: use common interfaces for shader modules

- zink: add batch usage flags for sampler views/states and desc sets

- zink: avoid looping for non-ubo descriptor updates based on set usage

- zink: break out batch id finding for resource usage into util function

- zink: move resource internals to a separate struct

- zink: split out backing resource object create/destroy

- zink: track resource_object usage instead of resource usage

- zink: handle cached descriptor set punting

- zink: add some asserts for pipeline barriers to check renderpass state

- zink: add util function for checking whether a shader descriptor is a buffer

- zink: add util function for checking whether shader descriptor is buffer from program

- zink: use an explicit zink_buffer_view struct

- zink: explicitly use zink_surface objects for sampler/image view objects

- zink: store bufferview hash to bufferview struct

- zink: simplify bufferview and imageview descriptor state hashing

- zink: add extra batch tracking for sampler views

- zink: massively beef up batch tracking for shader images

- zink: add helper function for getting a resource for a descriptor

- zink: update null descriptor hashes to reflect current descriptor states

- zink: improve debug asserts for samplers/images during descriptor updates

- zink: properly handle null bufferview descriptor states

- zink: cache bufferviews

- zink: add missing null check

- zink: unset last_vertex_stage_dirty after applying it

- zink: run nir_convert_from_ssa last during compile

- zink: use intermediate var for glsl non-array type during shader create

- zink: break out bo array type construction into ntv util function

- zink: also break out whole ntv bo struct pointer construction

- zink: add unsized array type to get_glsl_type_element() handling

- zink: add debug info about missing atomic ops

- zink: add ntv util function for checking if a glsl type is an atomic counter

- zink: break out sized uint array construction into util function

- zink: flatten binding numbers a bit

- zink: directly set nir variable bindings for reuse during ntv

- zink: move zink_binding() to compiler.c

- zink: apply Delete All The Code methodology to the ubo/ssbo variables

- zink: set ntv variable descriptor sets during compile phase

- zink: ci updates

- ci/panfrost: disable the rest of these jobs temporarily

- zink: hook up resource bind history

- zink: remove direct samplerview batch-tracking

- zink: add a pipe_context::invalidate_resource hook

- zink: set valid region for streamout buffers on bind

- zink: handle streamout buffer rebinds

- zink: invalidate resources on map when discarding range

- zink: enable PIPE_CAP_INVALIDATE_BUFFER

- zink: switch to deqp-runner for piglit jobs

- zink: always use requested format for sampler view creation

- zink: ci updates

- zink: more consolidation for null sampler/image view hashing

- zink: add a pipe_context::fence_server_sync hook

- zink: add enum for different queues

- zink: refactor resource_sync_writes_from_batch_usage() to manage batch id internally

- zink: convert ZINK_RESOURCE_ACCESS defines to enum

- zink: abstract zink_get_resource_usage() and move it to be internal

- zink: return enum zink_queue from zink_batch_reference_resource_rw()

- zink: split out batch resource-set clearing into separate function

- zink: move active query pruning to batch reset

- zink: move batch init into zink_batch.c

- zink: also move batch destructor into zink_batch.c

- zink: move other batch-tracking implementations to unified codepath

- zink: use macro to streamline batch struct member init

- zink: remove query batch-tracking init from begin_query()

- zink: move fence reset to zink_fence_init()

- zink: clear framebuffer state on context destroy

- zink: enable spirv extension for post depth coverage

- compiler/spirv: fix image sample queries

- zink: handle nir_intrinsic_image_deref_samples

- zink: flatten 2d_array surfaces when necessary

- lavapipe: support VK_KHR_copy_commands2

- lavapipe: rewrite cmdbufs to always do descriptor binds/pushes first

- lavapipe: force state updates when beginning queries

- llvmpipe/setup: force fs constant updating upon beginning queries

- zink: break out surface viewtype clamping into util function

- zink: improve surface viewtype clamping

- zink: correctly clamp samplerview surface types

- ci/lavapipe: split out lavapipe ci into lavapipe dir

- llvmpipe/setup: use bigger hammer to force fs constant updating correctly

- zink: split off a bunch of batch struct members to new batch state struct

- zink: rewrite queue dispatch to use monotonic batch ids instead of hardcoded ones

- zink: more accurately check samplecount caps for shader images

- zink: make fb ref func return bool on free

- zink: add explicit surface/bufferview batch-tracking functions

- zink: use surface references for fb attachments

- zink: break out surface destroy function into a screen function

- zink: use a custom surface referencing function whenever unrefing a surface

- zink: implement a global framebuffer cache

- vk: consolidate dynamic descriptor binding sorting

- ci: update xfails for ppc64le and s390x

- zink: break out buffer mapping part of zink_transfer_map

- zink: cache transfer maps

- zink: unify clear color conversion code

- nir: add nir_lower_indirect_builtin_uniform_derefs()

- st/glsl_to_nir: lower indirect derefs of builtins in non-packed uniform case

- softpipe: ci updates

- zink: move ‘batch_id’ and ‘is_compute’ members to fence

- zink: make batch usage unsetting function public

- zink: always reset batch states when finding a new one

- zink: move batch-tracked resources to fence object

- zink: fix spirv image operand ordering

- zink: fix multisampled shader image load/store

- zink: force PIPE_SWIZZLE_1 for X channels in samplerviews

- zink: handle blitting of color formats with ignored alpha channels

- zink: emulate PIPE_FORMAT_R8G8B8X8_UNORM

- zink: ci updates

- zink: relax unreachable() to debug_printf when waiting on batch

- zink: rework public batch flush function to be useful again

- zink: move zink_flush_compute() users to zink_flush_queue()

- zink: always flag xfb barrier on gfx flush when appropriate

- zink: simplify some queue-related query code

- zink: refactor clears a little to track a bitfield of enabled clears on the context

- zink: trigger pending clears during flush

- zink: ci updates

- zink: add wrapper to reset batch state structs

- zink: call clear() instead of reset() for batch states on context destroy

- zink: unify gfx and compute batches

- zink: isolate gfx stage bits when updating shader modules

- zink: store conditional render predicate to query and split out start/stop

- zink: only update conditional render buffer when it needs to be updated

- zink: toggle conditional render when beginning/ending a renderpass

- zink: ci updates

- zink: handle gallium multi draws more effectively

- zink: create separate upload mgr for constants

- zink: explicitly use stream uploader for staging buffers

- zink: add buffer_subdata hook

- zink: avoid unnecessary resource refs during descriptor update

- zink: remove handling for resource flushing between compute/gfx batches

- zink: remove unnecessary flush during image maps

- zink: add more rp cache asserts

- compiler/spirv: use undefs when extending image coords

- zink: don’t generate sampled image type for non-sampled images

- util/set: stop leaking u32 key sets which pass a mem ctx

- lavapipe: fix CmdCopyQueryPoolResults for partial pipeline statistics queries

- lavapipe: use the passed offset for CmdCopyQueryPoolResults

- lavapipe: stop tracking draw start/count on rendering state

- zink: ci updates

- lavapipe: ignore templateType when descriptor template isn’t for push descriptors

- lavapipe: remove lvp_descriptor_update_template::descriptor_set_layout

- zink: fix handling for image types in resource_copy_region hook

- zink: also fix image buffer layer copying

- lavapipe: fix array texture region copies

- zink: only do shader updates when relevant stages are dirty

- zink: use correct surface ref function for context destroy

- zink: stall when we start getting a lot of uncompleted batches

- zink: reset all fences when waiting on batch state

- zink: fix format support detection for storage texel buffers and shader images

- zink: break out image/buffer create info structs into helper funcs

- zink: make descriptor state invalidate public

- zink: reorder barrier util functions to set up barrier struct before batch

- zink: break out barrier struct initializing into helper funcs

- zink: create separate vk image/buffer objects for shader image use

- zink: incrementally add image usage flags based on device caps

- zink: add color output bit and/or use linear tiling for sampled images

- zink: check image format props before creating image

- zink: toggle between linear/optimal tiling during image creation

- zink: flatten out buffer creation usage flags codepath

- zink: ralloc shader cache and keys

- zink: rework border color handling

- zink: clean up query creation failure paths

- zink: create result buffers for all query streams

- zink: remove flush from query buffer copy

- zink: manually handle more bool query types for copying

- zink: remove special casing for occlusion qbos

- zink: rewrite query internals

- zink: bump pools up to 5k queries each

- zink: don’t use PARTIAL bit for query results with time queries

- zink: reorder availability handling for (user) qbos

- zink: remove explicit fencing for query results

- zink: ci updates

- lavapipe: refactor base draw dispatch to handle multidraws

- lavapipe: refactor indexed draw dispatch to handle multidraws

- aux/draw: stop copying draw params unnecessarily

- aux/draw: rewrite PRIM_RESTART_LOOP macro as a function

- aux/draw: pass the full draw params through to draw_instances()

- aux/draw: pass the full draw params through to draw_pt_arrays_restart()

- aux/draw: move draw param sanitization to end of function

- aux/draw: track increment_draw_id value from draw info

- aux/draw: pass full draw params to draw_pt_arrays()

- llvmpipe: stop flattening multidraws

- lavapipe: ignore unused clearvalues when beginning renderpass

- zink: rework texture_barrier hook

- zink: move update_descriptors & related funcs to zink_descriptors.c

- zink: move descriptor barrier handling to main update function

- zink: simplify some descriptor update function parameters

- zink: use GENERAL layout for sampler images that are also bound as shader images

- zink: rework some includes

- zink: rework memory_barrier hook

- zink: add locking for descriptor pools

- zink: add locking for resource maps

- zink: manually invoke cpu detection during screen init

- zink: add locking for batch states

- zink: add function for checking whether a batch is done

- zink: split fence finish func

- zink: add locking for fence resources

- zink: explicitly reset a couple more batch state members

- zink: assume fence has already completed if a batch state isn’t found

- zink: rename init_batch_state to get_batch_state

- zink: store context to batch state

- zink: make a local screen pointer in zink_flush

- zink: remove zink_fence_init()

- zink: move VkQueue to batch object

- zink: break out queue submit into separate functions

- zink: also check for device lost reset on flush

- zink: remove zink_create_fence()

- zink: track coherent resource objects

- zink: use cached memory for all resources when possible

- radv: stop zeroing radv_draw_info during draw

- radv: refactor draw dispatch

- radv: track whether gl_BaseInstance is used

- radv: simplify vs draw param counting during setup

- radv: set gfx pipeline vtx_emit_num to the number of sgprs

- radv: track whether drawid is used on the pipeline struct

- radv: track whether baseinstance is used on the pipeline struct

- radv: break out vertex shader param emission into separate function

- radv: make vertex param sgpr count more explicit

- radv: reorder vertex shader params

- radv: don’t emit baseinstance and drawid if neither is used

- radv: don’t reset vertex state params on pipeline bind if reg layout matches

- zink: implement threaded context

- zink: ci updates

- zink: handle PIPE_MAP_DONTBLOCK for buffer read maps

- zink: add set_context_param hook

- zink: add batch tracking id for program struct

- zink: track last completed batch id to optimize checking states

- zink: handle expired deferred fences more reasonably

- zink: hook up timeline semaphore signalling during batch submission

- zink: add timeline semaphore fastpath for checking/triggering batch completion

- zink: optimize batch states for timeline use

- zink: enforce device lost status

- zink: be more explicit about blit layer/depth usage

- zink: use VkSubresourceLayout::depthPitch as layer_stride when mapping 3D imgs

- zink: zink_push_constant -> zink_gfx_push_constant

- zink: use max_rt to determine number of blend state attachments

- zink: emit ImageCubeArray cap when accessing arrayed cube dimension images

- zink: fix layercount for array texture blits

- zink: add some asserts to avoid zero-sized blit regions

- features: mark off ARB_compute_variable_group_size for zink

- features: mark off GL_OES_viewport_array for zink

- zink: store shader_info to ntv_context struct

- zink: only emit SpvCapabilitySampleMaskPostDepthCoverage if the mode is set

- zink: enable PIPE_CAP_TGSI_TES_LAYER_VIEWPORT

- features: mark off ARB_shader_viewport_layer_array for zink

- zink: avoid cached memory allocations when not requested

- util/threaded_context: support pipe_context::set_sample_locations

- zink: hook up cs push constant for nir_intrinsic_load_work_dim

- zink: use better usage flags for staging resources

- zink: use vkGetPhysicalDeviceFormatProperties2 when available

- zink: use 2 variant to check image format props during create

- zink: only use host mem for staging resources with linear tiling

- zink: move cmdpool reset to batch state reset

- zink: split total_mem off to total_video_mem, use total_mem for tc

- zink: relax maybe_flush mem threshold

- zink: relax maybe_flush batch count threshold

- zink: check last_finished first in fence_finish early out case

- zink: defer timestamp query pool resets to end_query

- zink: reset queries when suspending if >50% of total pool is used

- zink: don’t use cached mem for staging resources

- zink: flag DYNAMIC resources as coherent

- zink: drop VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT from compute path

- aux/trace: add a set_inlinable_constants hook

- intel: avoid dumping null cs sampler/binding states

- zink: emit WorkgroupSize when not using ExecutionModeLocalSize

- lavapipe: add some asserts for blit region extents

- zink: export PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER

- aux/trace: add screen deduplication for zink+lavapipe tracing

- aux/trace: add a bunch of methods for lavapipe

- util/set: add macro for destructively iterating set entries

- util/hash_table: add macro for destructively iterating entries

- aux/trace: add GALLIUM_TRACE_TRIGGER mode

- zink: add a pipe_screen::finalize_nir hook

- zink: implement uniform inlining

- zink: add env var to force uniform inlining

- zink: remove atomic usage from batch tracking comparisons

- zink: bypass separate stencil path in resource_reference_rw when not a zs image

- zink: fix conditional when assigning tess variable io

- zink: stop unmapping resources

- zink: simplify clear-apply on fb state change

- zink: use set_foreach_remove()

- zink: use explicit subpass deps

- zink: hook up EXT_fragment_shader_interlock

- zink: support ARB_fragment_shader_interlock

- aux/trace: dump all the blend state members

- features: mark off ARB_fragment_shader_interlock for zink

- gallium/threaded_context: add another rule for buffer mapping

- zink: fix CI flakiness in glx-multithread-clearbuffer

- zink: make timeline semaphores per-screen

- zink: handle checking batch completion from other contexts without timelines

- zink: only unmap PIPE_MAP_ONCE in synchronous mode

- zink: don’t lose existing pNext when using wsi_image_create_info in image creation

- anv: fix debugoptimized build compile

- zink: move descriptor state management to descriptors.c

- zink: make a bunch of descriptor functions static

- zink: create separate linear tiling image for scanout

- zink: flag anv for mesa image create wsi

- zink: disable mutable formats for zs formats and scanout images

- aux/trace: enhance trigger mode to dump context states during bind

- aux/trace: dump current fb state on trigger-mode draw if it hasn’t been seen yet

- aux/trace: do deep dumps of fb state for triggered traces

- aux/trace: use ralloc_free for ralloc()ed state pointers

- zink: compare against screen batch id when determining which semaphore to use

- zink: always copy the nir shader before compiling

- zink: fix tcs slot map eval for user vars

- zink: fix tcs input reservation for user vars

- zink: merge copy-to-scanout path into non-deferred flush path

- zink: force scanout sync when mapping scanout resource

- zink: use undefined layout for first scanout obj transition

- zink: move scanout sync to end of batch

- zink: add a flag indicating whether scanout object needs updating

- zink: move wsi flush info conditional to queue submission

- zink: directly set batch->state->flush_res from flush_resource hook

- zink: add clear-on-flush mechanic deeper into flush codepath

- Revert “zink: force scanout sync when mapping scanout resource”

- softpipe: fix render condition checking

- softpipe: fix streamout queries

- softpipe: ci updates

- zink: track persistent resource objects, not resources

- zink: restore previous semaphore (prev_sem) handling

- zink: use cached memory for staging resources

- zink: only reset query on suspend if the query has previously been stopped

- zink: when performing an implicit reset, sync qbos

Nanley Chery (22):

- gallium: Map _DRI_IMAGE_FORMAT_NONE to NULL

- gallium: Flush GL API resources in eglCreateImage

- iris: Disable aux as needed in iris_flush_resource

- blorp: Assert 8x4 alignment for a HiZ op on Gen8-9

- i965,iris: Delete misleading HiZ sampling comments

- iris: Drop an XXX comment about sampling HiZ arrays

- iris: Drop a stale comment about HiZ sampling

- iris: Delete redundant assertion in iris_hiz_exec

- iris: Drop batch param from iris_resource_prepare_render

- iris: Fix the depth aspect aux usage in iris_blit

- iris: Keep aux_usage in iris_blorp_surf_for_resource

- iris: Fix aux usage of depth buffer prepare/finish

- iris: Loosen aux state getter/setter assert on HiZ

- iris: Don’t avoid aux state getter/setter with HiZ

- iris: Drop iris_resource::aux::has_hiz

- iris: Call iris_sample_with_depth_aux earlier

- iris: Set BO maps to NULL in bo_free

- drm-uapi: Update drm_fourcc.h for new TGL modifier

- isl: Describe I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC

- iris: Support clear color plane imports for RC_CCS_CC

- iris: Support RC_CCS_CC modifier in plane queries

- iris: Support I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC

Neha Bhende (3):

- mesa: set states in fast path for restoring light attributes

- gallium/u_vbuf: use updated pipe_draw_start_count while using draw_vbo

- nir_to_tgsi: Fix indices for CMP in nir_to_tgsi for nir_op_fcsel

Philipp Zabel (1):

- meson: Fix missing xcb-xrandr dependency for Vulkan X11 WSI

Pierre Moreau (4):

- docs/features: Add OpenCL status

- spirv: Ignore WorkgroupSize in non-compute stages

- nv50: Replace hardcoded texture/constbuf count with define

- nv50: Update texture indices to match stage indices

Pierre-Eric Pelloux-Prayer (55):

- ac: add ifdef __cplusplus guard to header

- radeonsi: invalidate compute sgprs in si_rebind_buffer

- radeonsi: inhibit clockgating when using SQTT

- ci: split src/mesa/**/* matching rule

- radeonsi/sqtt: use more event identifier

- radeonsi/sqtt: fix SQTT bo size overflow

- radeonsi/sqtt: allow AMD_THREAD_TRACE_TRIGGER to be a frame number

- radeonsi/sqtt: forward string markers to sqtt

- radeonsi: don’t use cp_dma prefetch on GFX6

- gallium/u_upload_mgr: lower risk of hitting an assert

- radeonsi: fix indentation issue in si_texture.c

- radeonsi: store si_context::xxx_shader members in union

- radeonsi: fix read from compute / write from draw sync

- radeonsi: fix si_check_render_feedback

- radeonsi: replace force_cp_dma arg of si_clear_buffer by enum

- radeonsi: enable dcc image stores on gfx10+

- radeonsi: force dcc clear to use compute clear

- mesa: update vao _EnabledWithMapMode in copy_array_object

- radeonsi: properly set SPI_SHADER_PGM_HI_ES

- ac/rgp: make the max gap between shader code a warning

- ac/rtld: make ac_rtld_upload returns the code size

- ac/rgp: move radv/sqtt functions to ac

- radeonsi/sqtt: keep a copy of the uploaded shader code

- radeonsi/sqtt: remove duplicate token

- radeonsi/sqtt: don’t always use WGP 0

- radeonsi/sqtt: export shader code to RGP

- radeonsi/sqtt: fix user event max size

- frontends/va: fix protected slice data buffer read size

- mesa/st: fix lower_tex_src_plane in multiple samplers scenario

- dlist: remove ListExt feature

- mesa: remove 2 recursive lock usages of _mesa_HashTable

- mesa/hash: make the mtx non-recursive

- mesa/hash: switch to simple_mtx

- mesa: make _mesa_HashTable InDeleteAll debug only

- vbo/dlist: use DrawGallium(Complex)

- nir/lower_tex: ignore texture_index if tex_instr has deref src

- mesa/st: fix st_nir_lower_tex_src_plane arguments

- mesa/st: ignore texture_index if tex_instr has deref src

- gallium/u_threaded: split draws that don’t fit in a batch

- st/draw: remove st_draw_vbo

- vbo: inline vbo_primitive_restart in brw_primitive_restart

- radeonsi/rgp: export barriers

- radeonsi/rgp: export compute shader programs

- gallium/u_threaded: skip refcounting only once

- driconf: add workarounds for Teardown

- amdgpu,radeon: add needs_reset param to ctx_query_reset_status

- radeonsi: submit cs to failed context instead of skipping them

- radeonsi: use SI_CONTEXT_FLAG_AUX when recreating the aux context

- radeonsi: do not recreate the aux context from the aux context

- radeonsi: only recreate the aux_context when soft recovery failed

- radeonsi: re-create the aux context in si_create_context

- amdgpu,radeon: add full_reset_only param to ctx_query_reset_status

- radeonsi: avoid querying gpu state if possible

- r600/sb: Use assignments for resetting struct r600_sb::literal

- driconf: add workaround for Golf With Friends

Qiang Yu (1):

- lima: fix xserver page flip fail for full screen client

Rhys Perry (141):

- nir/loop_unroll: unroll more aggressively if it can improve load scheduling

- aco: fix convert_to_SDWA() check in add_subdword_definition()

- aco: add test for incorrect convert_to_SDWA() check

- radv: fix max_waves estimation on GFX10.3

- aco: fix num_waves on GFX10+

- aco: have emit_wqm() take Builder instead of isel_context

- aco: add emit_mimg() helper

- aco: move VADDR to the end of the operand list

- aco: use non-sequential addressing

- aco: only require texture coordinates to be in WQM if NSA is used

- aco: add affinity for non-sequential MIMG operands

- radv,aco: don’t use MUBUF for multi-channel loads on GFX8 with robustness2

- nir/lower_io: fix array_length lowering if buffer is smaller than offset

- radv,aco: use deref_buffer_array_length

- radv: use nir_opt_access

- nir/sink,nir/move: sink/move reorderable load_ssbo

- radv: sink load_ssbo

- aco: don’t consider a phi trivial if same’s register doesn’t match the def

- aco: remove Format::{VOP3A,VOP3B}

- aco: add instruction cast and format-check methods

- aco: use instruction cast methods

- aco: use format-check methods

- aco: return references in instruction cast methods

- aco: fix WQM for texture instructions with args before the coordinates

- nir/opt_uniform_atomics: recognize more complicated invocation comparisons

- nir/opt_uniform_atomics: fix elect detection

- aco: disable a*1.0 optimization if the instruction is precise

- nir/algebraic: optimize out exact a*1.0 if it’s used only as a float

- aco: optimize a*0.0

- aco: optimize out a*1.0 if it’s used as a float

- nir/algebraic: optimize out exact a+0.0 if it’s used only as a float

- nir/algebraic: eliminate exact a*0.0 if float execution mode allow it

- aco: don’t affect isPrecise() after applying output modifiers

- nir,spirv: allow non-uniform OpArrayLength

- radv,ac/nir: implement non-uniform get_ssbo_size

- aco: implement non-uniform get_ssbo_size

- radv: round-up num_records division in radv_flush_vertex_descriptors

- radv: correctly enable WGP_MODE for NGG and GS

- radv: correctly enable WGP_MODE for tessellation control

- aco: add fallback algorithm in get_reg()

- aco: always set exec_live=false

- aco: optimize AC_FETCH_FORMAT_SNORM alpha adjust

- aco: do not flag all blocks WQM to ensure we enter all nested loops in WQM

- aco: rewrite setting of Exact_Branch

- aco: remove loop to flag loop blocks as WQM

- aco: fix adjust_vertex_fetch_alpha

- radv: use a more relaxed alignment for upload buffer allocations

- radv: fix max_lds_per_simd on GFX10

- radv: switch MaxWaves statistic to wave32 waves

- ac: split lds_granularity into encode and allocation granularities

- radv: use lds_{encode,alloc}_granularity

- radv: round up max_lds_per_simd / lds_per_wave

- aco: fix waves calculation for wave32

- aco: add Program::wgp_mode

- radv,aco: add radv_nir_compiler_options::wgp_mode

- aco: consider that GFX10.3 allocates LDS in 1024 byte blocks

- aco: add DeviceInfo

- aco: fix transition_to_{WQM,Exact} if exec.back() is not in exec

- radv: relax shared alignment requirements in mem_vectorize_callback

- radv,aco: allow unaligned LDS access on GFX9+

- aco/lower_phis: fix all_preds_uniform with continue_or_break

- nir/dce: replace instruction worklist with ssa def bitset

- nir: inline nir_foreach_{src,dest}

- nir/dce: perform DCE for unlooped instructions in a single pass

- aco: calculate all p_as_uniform and v_readfirstlane_b32 sources in WQM

- aco: use p_as_uniform for get_sampler_desc and convert_pointer_to_64_bit

- nir: fix build at -O1

- nir: add nir_ssa_def_is_unused()

- nir/copy_prop: remove unused copies

- nir/copy_prop: visit copies instead of sources

- nir/copy_prop: use nir_{instr,if}_rewrite_{src,condition}_ssa

- Revert “radv,aco: allow unaligned LDS access on GFX9+”

- aco: add missing usable_read2 check

- nir/opt_shrink_vectors: add option to skip shrinking image stores

- radv: don’t shrink image stores for The Surge 2

- radv: don’t set sx_blend_opt_epsilon for V_028C70_COLOR_10_11_11

- radv,aco: remove aco_compiler_statistics

- radv: cache pipeline statistics

- aco: set compr for fp16 exports

- radv/llvm: fix enabled_channels for compressed exports

- aco: simplify loop_nest_depth tracking in isel

- aco: track divergent and uniform branch depth

- aco: move wait_imm to aco_ir.h

- aco: lower p_constaddr into separate instructions earlier

- aco: add instruction classes

- aco: add latency and inverse throughput statistics

- aco: add print option to print program without temporary IDs

- aco: add ACO_DEBUG=perfinfo

- aco: remove vmem/smem score statistics

- aco: fix NSA MIMG followed by MUBUF/MTBUF

- aco/tests: add test for NSAToVMEMBug

- aco: fix NSA following writelane

- aco/tests: add test for waNsaCannotFollowWritelane

- nir: Don’t update base in vectorize_loads()

- aco: implement 64-bit VGPR {u,i}find_msb

- aco: use uadd32_sat() helper for nir_op_uadd_sat

- aco: use a single instruction for uadd32_sat() on GFX8

- aco: implement image_deref_samples

- aco: add aco_print_program() flag to print kill flags

- aco: add aco_print_program() flags to print live_out and register demand

- docs: document ACO_DEBUG=perfinfo

- aco: add ACO_DEBUG=liveinfo

- radv: lower variables to ssa before nir_propagate_invariant

- radv: lower view_index to zero if multiview is disabled

- ci: add expected fail for RADV

- aco: don’t optimize min(a*1.0, …) to min(a, …) on GFX8

- aco: use -1.0*x and 1.0*|x| for fneg/fabs

- aco/tests: add tests for denormal-aware propagation

- ac: invalidate metadata after hs_emit_write_tess_factors()

- aco/tests: fix isel.sparse.clause for LLVM 12+

- lavapipe: fix initialization of pipe_stream_output with unwritten outputs

- nir/gather_info: implement partial masking of struct and compact I/O

- nir/lower_tex: handle deref casts

- nir_to_tgsi: run constant folding after nir_opt_algebraic

- aco: fix integer tg4 workaround with unnormalized coordinates

- draw: fix pstipple, aaline and aapoint without LLVM

- aco: ensure loops nested in a WQM loop are in WQM

- nir/gather_info: fix partial masking of compact I/O with location_frac!=0

- radv: remove second nir_lower_idiv

- nir/lower_idiv: add options to use fp32 for 8-bit division lowering

- nir/lower_idiv: make lowered divisions exact

- aco: fix 16-bit u2f32

- aco: fix 16-bit f2{u8,i8} on GFX6/7

- radv: don’t use fp16 for 8-bit division lowering before GFX9

- nir: add nir_block_get_predecessors_sorted() helper

- nir/lcssa: fix nondeterminism in predecessor iteration

- nir/loop_unroll: fix is_indirect_load() with load_global

- radv: fix conditions for running nir_opt_vectorize

- aco/ra: use original names when renaming loop carried phi operands

- aco/ra: remove live-in temporary from live_out_per_block when moving it

- radv: fix barrier in radv_decompress_dcc_compute shader

- radv: fix clearing DCC-compressed e5b9g9r9 images

- aco: set TRUNC_COORD=0 for nir_texop_tg4

- ac/nir: set TRUNC_COORD=0 for nir_texop_tg4

- Revert “radeonsi: set TRUNC_COORD=0 for Total War: WARHAMMER to fix it”

- aco: don’t update register demand during RA validation

- aco: allow SDWA sels smaller than the operand size

- radv: disable VK_FORMAT_R64_SFLOAT

- vulkan: fix use-after-free in vk_common_DestroyDebugReportCallbackEXT

- radv: fix use-after-free upon GS copy shader cache hits

- radv,ac/llvm: use a dword alignment for descriptor loads

Rob Clark (143):

- freedreno/ir3: Fix ldg decoding/parsing

- freedreno/ir3: Decouple ir3_info collection from assembler

- freedreno/ir3: Add some new “logical” opcodes

- freedreno/hw: Add isaspec mechanism for documenting/defining an ISA

- freedreno/hw/isa: Add description of ir3 ISA

- freedreno/hw/isa: Add expression caching

- freedreno/ir3/tests: Switch disasm test over to new decoder

- freedreno/ir3: Switch over to new encoder/decoder

- freedreno/ir3: Small resinfo disasm tweak

- freedreno/ir3: Better sstall estimation

- freedreno/ir3: Realign disasm shader stats

- freedreno/ir3/decode: Switch over to new disasm

- freedreno/ir3: Remove legacy packed-struct encoding

- frontend/dri: Expose RGB[AX]_SRGB as well

- freedreno/isa: Fix branch/jump offset encoding

- freedreno/a6xx: Add r2d support for GMEM resolves

- gallium/util: Add helpers to determine if z/s is written

- freedreno/a6xx: Don’t early-z if there are stencil writes

- r300: Use util_writes_depth_stencil() helper

- radeonsi: Use util_writes_stencil() helper

- freedreno: Add perf_warn() trace helper

- freedreno: Add fmt/args macros for pipe_resource

- freedreno/a6xx: Add helper to check if UBWC is supported

- freedreno: Add perf_warn() for missed UBWC opportunities

- ci/freedreno/a6xx: Skip vs-output-array-vec2-index-wr-before-gs

- freedreno/a6xx: Fix 3dmark misrendering with unwritten MRTs

- mesa: Remove _mesa_destroy_context()

- freedreno/decode: Fix overflow

- freedreno: Put an upper limit on VSC size

- freedreno: Misc cleanup

- freedreno/a5xx: Drop fd5_compute_stateobj

- freedreno/a6xx: Drop fd6_compute_stateobj

- freedreno/ir3+a5xx+a6xx: De-duplicate create_compute_state()

- freedreno/ir3: Add ir3_shader_state

- freedreno/ir3: Move ir3_compiler_create()

- freedreno/ir3: Add ir3_screen_fini()

- freedreno/ir3: Reshuffle ir3_shader_create()

- freedreno/ir3: Reshuffle compute state creation

- freedreno/ir3: Async shader compile

- freedreno/ir3: Add missing shader prog cache invalidation

- freedreno: Quiet fallthrough warnings

- freedreno: Split batch_flush_reset_dependencies()

- freedreno: driver-thread annotations

- freedreno/ir3/print: More sane ssa src/dst display

- freedreno/ir3/print: Improve branch printing

- util/fossilize_db: Fix compile error with clang

- freedreno: Handle InvalidateBufferData() case

- freedreno: Add perf_debug logging for bo stalls

- freedreno: Workaround for UNSYNC+DISCARD_RANGE

- driconf: Generate a static table when no xmlconfig

- xmlconfig: Reshuffle to keep attr processing

- xmlconfig: Add static driconfig support

- freedreno/ir3: Drop foreach_bit() macro

- freedreno: Drop foreach_bit() macro

- etnaviv: Drop foreach_bit() macro

- v3d: Drop foreach_bit() macro

- freedreno: Fix think-o in fd_resource_wait()

- freedreno/ir3: Fix initial_variants_synchronous() condition

- freedreno: Add FD_DBG() macro

- freedreno: Slight perf_debug rework

- freedreno: Add macro for duration based warns

- util/u_queue: Ensure num_cpu_mask_bits is valid

- util: Add accessor for util_cpu_caps

- freedreno/a6xx: Always pass ctx to fd6_emit_textures()

- freedreno/a6xx: Fix uncompressed resource vs stale CSO

- freedreno/ir3: Add comments about shader key/gen

- freedreno: Deduplicate fixup_shader_state()

- freedreno/a6xx: Fix compile warning

- driconf: Add ignore_map_unsynchronized option

- freedreno: Remove dead-cells MBR workaround

- util: Extract thread-id helpers from u_current

- gallium/u_threaded: Add helper to assert driver thread

- gallium/u_threaded: use mesa_log for debug msgs

- freedreno: Fix u_blitter constant-buffer leak

- freedreno: Factor out common fd_resource init

- freedreno: Split out batch/resource tracking

- freedreno: Restructure transfer_map()

- freedreno: Extend threaded_resource

- freedreno: Extend threaded_transfer

- freedreno: Extract out helper for transfer-map flag munging

- freedreno: Add fd_replace_buffer_storage()

- freedreno: Add transfer_pool_unsync

- freedreno/a6xx: Move UBWC demotion to first sampler view bind

- freedreno: Check cb0 in rebind_resource()

- freedreno: threaded_context support

- freedreno: threaded_context async flush support

- freedreno: Fix fd_fence_finish()

- freedreno/drm: Avoid unitialized timestamp in submit fail

- freedreno/drm: Split softpin “reloc” functions

- freedreno/drm: Split 64b vs 32b paths

- freedreno/drm: Move emit_reloc_tail to head

- freedreno/drm: Inline iova calculation

- freedreno/ir3: Precompute whether we need driver-params

- freedreno: Add helpers to mark dirty state

- freedreno: Add mapping to generation specific dirty state

- freedreno/a6xx: Convert to dirty_groups

- freedreno: Small dirty flag re-org

- freedreno: Add dirty bit for state that needs rsc tracking

- freedreno: Don’t ignore geom/tess stage resources

- freedreno: Split out helper for updating sw stats

- freedreno: Only collect sw stats when required

- freedreno/a6xx/vsc: Be more tolerate of degenerate prims

- freedreno: Drop u_trim_pipe_prim() from fast-paths

- u_draw: Add helper to emultate multi-draw

- freedreno: Use multi-draw helper

- freedreno: Handle multi-draw edge cases

- freedreno: Push multi-draw closer to backend

- freedreno/a6xx: Emit streamout state on every draw

- freedreno: Add draw cost estimation

- freedreno/batch: Export key/hash fxns

- freedreno/batch: Add a way to clone a batch key

- freedreno: Add gmem_reason_mask

- freedreno/a6xx: Fix sRGB/snorm vs sysmem clear path

- freedreno: Autotune bypass vs GMEM rendering decision

- freedreno/a6xx: Fix typo

- freedreno: Make headers C++ happy

- freedreno/fdperf: Use os_read_file()

- freedreno: Split out devicetree helpers

- ci: Disable panfrost t760

- freedreno/a6xx: Fix indirect+patches draws

- freedreno/a6xx: Fix obsolete comment

- d3d12: Use util_draw_multi() helper

- etnaviv: Use util_draw_multi() helper

- i915: Use util_draw_multi() helper

- iris: Use util_draw_multi() helper

- lima: Use util_draw_multi() helper

- llvmpipe: Use util_draw_multi() helper

- nouveau: Use util_draw_multi() helper

- r300: Use util_draw_multi() helper

- r600: Use util_draw_multi() helper

- softpipe: Use util_draw_multi() helper

- svga: Use util_draw_multi() helper

- tegra: Use util_draw_multi() helper

- vc4: Use util_draw_multi() helper

- v3d: Use util_draw_multi() helper

- virgl: Use util_draw_multi() helper

- freedreno: Don’t handle multi-draw in indirect case

- util/primconvert: Handle indirect and multi-draw

- freedreno: Add .clang-format

- freedreno: Some manual reformatting

- freedreno: Re-indent

- freedreno: Manual fixups

- freedreno: Add missing foreach macros and update indentation

Rohan Garg (8):

- virgl: Cache depth and stencil buffers

- ci: Ensure that jobs inherting the ci-deqp jobs artifact meson logs

- intel/genxml: Free resource before exiting

- intel/compiler: Free resources on test teardown

- virgl: update headers

- virgl: Return total video memory if available

- virgl: Add support for querying detailed memory info

- virgl: Support the ETC1_RGB8 format as virglrenderer supports it

Roman Stratiienko (1):

- egl: android: use num_planes param in createImageFromDmaBufs()

Ruijing Dong (1):

- radeon/vcn: release si buffer for encoding at the end.

Ryan Neph (1):

- Revert “virgl: fix BGRA emulation artifacts during window resize”

Sagar Ghuge (7):

- anv: Invalidate the correct AUX-TT entry

- anv: Skip CCS ambiguate which preceed fast-clears

- intel/mi_builder: Added support for command streamer shift operations

- anv: Add anv_memregion structure

- Revert “Revert “blorp/gen12: Don’t use aux address if implicit CCS””

- intel/blorp: Fix condition to figure out aux_address

- anv: Set correct binding table entry count

Samuel Iglesias Gonsálvez (9):

- turnip: disable UBWC on Z24_S8 MSAA images on A630

- turnip: set sparseAddressSpaceSize to zero

- turnip: fix UINT64_MAX size wrapping in tu_GetBufferMemoryRequirements()

- turnip: fix resolve MSAA D24_UNORM_S8_UINT image to S8_UINT

- turnip: fix resolve MSAA D32_SFLOAT_S8_UINT image to S8_UINT

- util: fix parsing of /proc/meminfo MemAvailable value

- turnip: keep track of memory heap usage, size and flags

- turnip: VK_EXT_memory_budget implementation

- turnip: set depth plane control zmode to A6XX_LATE_Z when sample mask is written

Samuel Pitoiset (218):

- radv: do not invalidate the L2 metadata cache on compute queues

- ci: mark some sparse CTS as expected failures on RAVEN

- radv: flush L2 metadata as part of CB/DB flush instead of CS_DONE on GFX9

- radv: add a comment explaining the micro tile mode resolve

- radv: enable TC-compat HTILE with D32S8 and MSAA on GFX9+

- radv: enable TC-compat HTILE for D16S8 on GFX9+

- radv: restore invalidating the vector cache for internal meta operations

- radv: flush L2 for images affected by the pipe misaligned issue on GFX10+

- ci: exclude one CTS test that timeout most of the time for RADV CI

- radv: remove redundant check in radv_process_depth_stencil()

- radv: remove unnecessary radv_image::tc_compatible_htile

- radv: remove redundant check in depth_view_can_fast_clear()

- radv: fix a sync issue with geometry shader primitives query on GFX10+

- radv: fix overflow when computing the SQTT buffer size

- radv: inhibit clock gating when tracing with SQTT

- ac/rgp: add support for GFX10.3

- ac,radv: add SQTT support on GFX10.3

- radv: enable SQTT support on GFX10.3

- radv: fix separate depth/stencil layout in render pass

- radv: add multi-layer support to FMASK color expand

- radv: use the range aspect mask in FMASK color expand

- radv: use a workgroup size of 8x8 for FMASK color expand

- radv: only decompress the depth/stencil aspect that needs to be resolved

- radv: enable sparseImageInt64Atomics/sparseImageFloat32Atomics

- radv,aco: fix shifting input VGPRs for the LS VGPR init bug on GFX9

- radv: synchronize Cmd{Set,Write}Event() using PS_DONE/CS_DONE events

- radv: add support for emitting PS_DONE/CS_DONE on GFX6-8

- radv: remove radv_util.h

- radv: remove stub() macros

- radv: remove unused EMPTY constant in radv_descript_set.c

- nir/algebraic: mark more optimization with fsat(NaN) as inexact

- ac/surface: store HTILE mip info into the surface

- radv: use the image view range when fast clearing depth

- radv: check if HTILE is enabled per-level instead of the entire image

- radv: do not decompress/resummarize levels without HTILE

- radv: remove mipmaps related assertions when initializing HTILE

- radv: add support for fast clearing levels of the HTILE buffer

- radv: teach radv_htile_enabled() about the number of HTILE levels

- radv: enable TC-compat HTILE for mipmaps on GFX10+

- radv: re-disable TC-compat HTILE for D32S8 on all generations

- radv: fix centroid with VRS coarse shading

- radv/winsys: move the initial BO domain to radeon_winsys_bo

- radv: prefer CP DMA for GTT buffer copies/clears on dGPUs due to slow PCIe

- radv: fix waiting on the last enabled RB for occlusion queries

- radv/winsys: use an array for the global BO list instead of a list

- radv/winsys: remove the radv_amdgpu_winsys_bo::ws indirection

- radv/winsys: remove useless continue preamble CS for IBs path

- radv/winsys: remove useless is_local check in radv_amdgpu_cs_add_buffer()

- radv/winsys: remove unused radeon_bo_usage enum

- radv/winsys: simplify the user fence logic for submission

- radv/winsys: remove unused fields in radv_amdgpu_cs_request

- radv/winsys: stop zeroing radv_amdgpu_cs_request

- radv: use less AMDGPU contexts by creating only one per queue priority

- radv: add radeon_winsys_bo::use_global_list

- radv: stop using VM_ALWAYS_VALID on APUs

- radv/winsys: move the debug_all_bos check outside of the add/del helpers

- radv/winsys: set use_global_list to avoid adding a BO twice

- radv/winsys: add buffer_make_resident() to the API

- radv/winsys: add the resident BOs to the list of BOs at submit time

- radv/winsys: enable the global BO list unconditionally

- radv: use the global BO list from the winsys

- radv: fix printing the debug option names

- radv: fix double free when creating a fence failed

- radv: stop allocating useless ESGS scratch BO on GFX10+

- radv: fix memory leaks if a submission fails

- radv: do not overallocate the SQTT buffer

- radv: adjust an error message related to the SQTT buffer size

- radv: add support for resizing the SQTT buffer automatically

- ac/rgp: append the number of seconds to the generated RGP file

- radv: emit pipeline bind markers for SQTT

- radv: only make the WSI images resident if the global BO list is used

- radv/winsys: set use_global_list inside the critical section

- radv: only apply the MRT output NaN fixup to non-meta shaders

- radv: create the start/stop CS for SQTT dynamically

- radv: move SQTT parameters initialization to radv_thread_trace_init()

- radv: remove an outdated TODO about SQTT cache flushes

- radv: make sure to allocate enough space when emitting SQTT userdata

- radv: stop emitting pipeline bind markers

- radv: do not allow to capture SQTT on the compute queue

- radv: add support for user event markers with SQTT

- radv: only emit pipeline bind markers for application pipelines

- radv: use the pipeline key as hash for pipeline bind markers

- radv: set correct value for OFFCHIP_BUFFERING on GFX10+

- radv: make the border color BO a resident buffer

- radv: make the trace BO a resident buffer

- radv: make the TMA/TBA BOs resident buffers

- radv: emit the trap handler registers earlier

- radv: rework radv_cmd_buffer_resolve_subpass() a bit

- radv: emit missing subpass resolve marker for SQTT

- ac/rgp: fill CPU info by parsing /proc/cpuinfo

- radv: store a pointer to the code in radv_shader_variant

- radv: add support for exporting pipelines with RGP

- radv: add support for instruction timing with RGP

- radv: do not scale the depth bias for D16_UNORM depth surfaces

- include/drm-uapi: bump AMDGPU headers

- ac/rgp: recognize more memory types

- ac/rgp: report LDS size in CU mode on GFX10+

- ac/rgp: report the number of memory operations per clock

- ac/rgp: report the number of primitives per clock

- radv: remove duplicate REG_INCLUDE_CONTEXT setting for SQTT

- radv: always select the first active CU when profiling with SQTT

- radv: fix exporting SQTT pipelines with LLVM

- radv: exclude perf counters for SQTT also on GFX10.3

- Revert “radv: do not overallocate the SQTT buffer”

- radeonsi,radv: do not overallocate the SQTT buffer size

- radv: remove useless decompression of the DS resolve attachment

- radv: do not trace inactive shader engines with SQTT

- ac/sqtt: fix determining if the trace is complete on GFX10+

- radv: double the SQTT buffer size when it is resized

- radv: trigger a new SQTT capture automatically after resizing the buffer

- radv: bump the initial SQTT buffer size to 32MB per SE

- radv: fix RGP barrier layout transition for TC-compatible CMASK images

- Revert “radv: stop using VM_ALWAYS_VALID on APUs”

- radv: cleanup enabling TC-compat HTILE for depth surfaces

- radv: remove useless check about mips+layers for TC-compat HTILE images

- radv: skip useless FCE when fast-clearing MSAA images with DCC enabled

- radv: re-enable TC-compat HTILE for MSAA D32S8 images on GFX9+

- radv: do not declare push constants for DCC decompress on compute

- radv: check if dynamic VRS state changed

- radv: check if dynamic line stipple state changed

- radv: disable sampling with VK_FORMAT_R64_SFLOAT

- radv: fix meta save/restore state with non renderable images

- radv: fix potential clears with non renderable images on GFX9+

- radv: fix initialization of disable_compression when clearing color image

- radv: add missing SQTT events for copy_commands2/create_renderpass2

- radv: remove useless DCC disable check for 3D images on GFX10+

- radv: rework radv_use_dcc_for_image() a bit

- vulkan: add missing vk_shader_module.c/h includes to Makefile

- radv: use common entrypoints for VK_KHR_copy_commands2

- radv: do not enable TC-compat CMASK if the image isn’t readable by a shader

- radv: remove redundant check when enabling TC-compat CMASK

- radv: make sure FMASK is enabled for TC-compat CMASK

- radv: only configure the CMASK tiling for TC-compat on GFX8

- radv: initialize TC-compat CMASK images with the DCC clear code

- radv: enable TC-compat CMASK on GFX10+

- radv: add notccompatcmask debug option

- radv: extend the dirty bits to 64-bit

- ac/surface: init CMASK slice size on GFX9+

- radv: fix clearing CMASK layers on GFX9+

- radv: initialize CMASK with correct clear codes

- radv: restore previous MRT CB_SHADER_MASK logic

- radv: gather if the FS uses perspective or linear interpolations

- radv: determine if a pipeline is candidate for flat shading

- radv: enable VRS 2x2 coarse shading for flat shading on GFX10.3+

- radv: add RADV_DEBUG=novrsflatshading option

- ci: update list of expected CTS failures for RADV

- vulkan: add common entrypoints for VK_KHR_create_renderpass2

- radv: use common entrypoints for VK_KHR_create_renderpass2

- turnip: use common entrypoints for VK_KHR_create_renderpass2

- lavapipe: use common entrypoints for VK_KHR_create_renderpass2

- anv: use common entrypoints for VK_KHR_create_renderpass2

- radv: report that degenerated triangles are not culled

- radv: require DRM 3.35+

- ac/surface: do not allocate FMASK or CMASK for stencil-only surfaces on GFX9+

- radv: do not fixup DCC after compute color resolves if DCC stores enabled

- radv: only set WRITE_COMPRESS_ENABLE for storage image descriptors

- radv: use a sampled image descriptor for reads for the MSAA color decompress

- radv: compress FMASK for all layouts except GENERAL

- radv: cleanup FMASK expand transitions

- radv: do not force enable FMASK during MSAA blits

- radv: use COLOR_ATTACHMENT_OPTIMAL for fast clear/hw resolve operations

- ac: add ac_get_family_name() helper

- radv: change RADV_FORCE_FAMILY to use family name instead of LLVM processor name

- radv: try to keep HTILE compressed with DEPTH_STENCIL_READ_ONLY_OPTIMAL

- radv: clean up fence syncobj code

- ac: add ac_gpu_info::has_image_load_dcc_bug

- aco: fix get_sampler_desc() for image loads

- aco: implement a workaround for the image load DCC hw bug on GFX10.3

- radv: allow DCC for storage images on GFX10.3 with RADV_PERFTEST=dccstores

- radv: handle implicit subpass dependencies per attachment

- radv: init CMASK/FMASK/DCC in parallel

- radv: perform MSAA color decompression for storage images with DCC

- radv: enable DCC stores with MSAA 4x/8x on GFX10+

- radv: simplify a check when enabling DCC for concurrent images

- radv: enable DCC for concurrent images on GFX10

- radv: make sure FMASK decompress and FCE are performed on gfx queue

- radv: add MSAA support to ClearColorImage() on compute queue

- radv: do not clamp framebuffer dimensions to the minimum dimension

- radv: add MSAA support to CopyImage() on compute queue

- radv: use explicit VRS mode when configuring PA_CL_VRS_CNTL

- radv: allow to force VRS rates on GFX10.3 with RADV_FORCE_VRS

- radv: fix needed dynamic state for VRS

- amd/addrlib: expose HTILE address equations to drivers on GFX10+

- ac/surface: rename ac_surface_dcc_address_test.c

- ac/surface: add a test of HtileAddrFromCoord prototype outside of addrlib

- ac/surface: rename gfx9_dcc_equation to gfx9_meta_equation

- ac/surface: increase gfx9_meta_equation::gfx10_bits by 4 elements

- ac/surface: copy the HTILE equations to the surface

- ac/surface: implement HtileAddrFromCoord in NIR

- ac/surface: store the HTILE pitch to the surface

- radv: expose R8_UINT as the only supported format for VRS attachments

- radv: do not allow MSAA with fragment shading rate attachments

- radv: do not enable DCC for fragment shading rate attachments

- radv: determine if attachment VRS is enabled

- radv: configure the VRS HTILE encoding size

- radv: do not use the whole HTILE buffer for depth when VRS is used

- radv: update the HTILE clear word when VRS is used

- radv: allow HTILE for very small images if VRS attachment is used

- radv: create an image for VRS if no depth/stencil attachment is bound

- radv: handle the VRS attachment subpass

- radv: bind our internal depth buffer when not provided by the app

- radv: add support for copying VRS rates into HTILE

- radv: copy VRS rates to HTILE when beginning a subpass

- radv: configure the VRS combiners when an attachment is used

- radv: advertise attachmentFragmentShadingRate on GFX10.3

- ac: add missing BUF_DATA_FORMAT_10_11_11 vertex format on GFX10+

- radv: keep DCC compressed for clears on compute with image stores

- aco: fix opquantize2f16 on GFX6-7

- radv: fix fast clearing depth-only or stencil-only aspects with HTILE

- radv: fix emitting depth bias when beginning a command buffer

- radv: fix emitting default depth bounds state on GFX6

- radv/winsys: fix allocating the number of CS in the sysmem path

- radv/winsys: fix resetting the number of padded IB words

- radv: make sure CP DMA is idle before executing secondary command buffers

- radv: fix various CMASK regressions on GFX9

- radv: fix computation of the number of user SGPRS for NGG GS state

- radv: check if DCC is enabled when resolving different levels

- radv/winsys: fix executing huge secondary command buffers on GFX6

Serge Martin (1):

- clover: return CL_INVALID_VALUE when origin or region are NULL

Simon Ser (15):

- nouveau/nvc0: fix linear buffer alignment for scan-out/cursors

- nouveau/nv50: fix linear buffer alignment for scan-out/cursors

- frontends/va: extract pipe format to DRM format mapping

- frontends/va: add support for VA_EXPORT_SURFACE_COMPOSED_LAYERS

- frontends/va: add pipe to DRM format mapping for NV12 and P010

- radeonsi/uvd: make format modifiers-aware

- egl: use render node for wl_drm if available

- gbm: fail early when modifier list only contains INVALID

- gbm: remove fprintf calls in gbm_dri_bo_create

- egl/wayland: avoid unnecessary roundtrip when authenticated

- gbm: add gbm_bo_get_fd_for_plane

- egl: fix software flag in _eglAddDevice call on DRM

- egl: only take render nodes into account when listing DRM devices

- Revert “egl: Don’t add hardware device if there is no render node v2.”

- radv: fix format feature reporting for modifiers

Simon Zeni (1):

- egl/dri2: enable EGL_WL_bind_wayland_display in EGL device platform

Stéphane Marchesin (1):

- virgl: Add simple disk cache

SureshGuttula (3):

- va/picture : Added failure check for stability

- frontends/va: Update conditional checks for code stability.

- frontends/va : Fix memory leaks incase of error returns

Tamara Schmitz (1):

- util: add mesa_glthread for Valheim in OpenGL mode.

Tapani Pälli (17):

- mesa: add GL_SR8_EXT, GL_SRG8_EXT for color/srgb format queries

- intel/perf: cleanup, remove duplicate function declaration

- intel/perf: introduce additional ralloc context parameter

- i965: use aligned malloc for context instead of ralloc

- mesa: add check that non base level attachment is mipmap complete

- gitlab-ci: bump piglit commit for windows

- anv: toggle on sample shading if it is set in the shader

- anv/android: fix compilation failure

- anv: fix compilation due to missing vk_format_from_android

- mesa: check cube completeness for cube fbo attachments

- anv/android: fix image creation with external format

- android: add some more stub functions for cross compilation

- intel/common: disable batch decoder on Android platform

- loader: prefer iris on Android

- iris: clamp PointWidth in 3DSTATE_SF like i965 does

- egl: support no error attribute set to false with ES 1.1

- glx: revert “Downgrade sRGB-ful fbconfigs”

Thong Thai (2):

- frontends/va/config: Fix check for packed header config

- radeon: Add cropping to encoded H.265 when padding is used

Timothee Chabat (1):

- llvmpipe: increase PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE value

Timothy Arceri (23):

- util/disk_cache: do crc32 check on compressed data for ZSTD

- util/disk_cache: move cache path strdup call back into disk_cache.c

- util/disk_cache: use a new cache dir for the single file cache feature

- util/mesa_sha1: add helper to reconvert sha1 hex strings

- util/fossilize_db: add basic fossilize db util to read/write shader caches

- util/disk_cache: make use of single file cache when env var set

- nir: handle negatives in ffma reassociation optimisation

- util/disk_cache: fix crash in fossilize_db

- util/disk_cache: move cache tests to the util directory

- util/disk_cache: make MESA_DISK_CACHE_READ_ONLY_FOZ_DBS a relative path

- Revert “glsl: default to compat shaders in compat profile”

- glsl: fix declarations of gl_MaxVaryingFloats

- util: create some standalone compression helpers

- util/disk_cache: make use of the new compression helpers

- util/fossilize_db: remove compression from foz db helper

- util/compress: make compression function inputs const

- util/disk_cache: separate file reads from cache item validation

- util/disk_cache: detangle cache item creation from disk writing

- util/disk_cache: add cache item headers to single file cache entries

- glsl: add compilation errors for attribute and varying qualifiers

- glsl: enforce restrictions on builtin functions moved to compat

- mesa: fix incomplete GL_NV_half_float implementation

- util: disable glthread in CSGO

Timur Kristóf (55):

- radv: Only enable sparse features on Polaris and newer.

- tgsi_to_nir: Fix uniform ranges.

- aco: Fix LDS statistics of tess control shaders.

- radv/llvm: Fix reporting LDS stats of tess control shaders.

- aco: Disallow LSHS temp-only I/O when VS output is written indirectly.

- pan/bi: Use correct enum type for NIR intrinsics.

- aco: Use ASSERTED to avoid unused variable warning.

- intel/compiler: Use assume() instead of assert() for array bounds.

- intel/compiler: Make room for maximum dest size in nir_emit_texture.

- anv: Use unreachable() in anv_genX.

- anv: Use ASSERTED for results that are only used in asserts.

- nir: Add new nir_builder helpers for iadd with no_unsigned_wrap.

- nir: Add nir_builder helper for I/O address offset calculations.

- nir: Add a few more algebraic optimizations to help address calculation.

- nir: Fix unsigned upper bound of local_invocation_index for non-CS stages.

- nir: Shrink vectors for load_shared.

- nir: Add unsigned upper bound for TCS load_invocation_id.

- nir: Add default unsigned upper bound configuration.

- nir: Add AMD-specific buffer load/store intrinsics.

- nir: Add nir_opt_offsets to fold const adds into load/store offsets.

- nir: Add tessellation related AMD-specific intrinsics.

- nir: Add AMD-specific Geometry Shader related intrinsics.

- aco: Implement new buffer load/store intrinsics.

- aco: Implement the new tessellation I/O related NIR intrinsics.

- aco: Implement new Geometry Shader intrinsics.

- ac/llvm: Implement AMD-specific buffer load/store intrinsics.

- ac/llvm: Implement the new tessellation intrinsics.

- ac/llvm: Implement new Geometry Shader intrinsics.

- ac/llvm: Make shared loads/stores work correctly for non-CS stages.

- ac/llvm: Make sure to always emit integer comparison for nir_op_ieq.

- ac/llvm: Add constant offset to load/store_shared.

- ac/llvm: Emit more efficient code for load_shared.

- ac: Add NIR passes to lower VS->TCS->TES I/O to memory accesses.

- ac: Add NIR passes to lower ES->GS I/O to memory accesses.

- radv: Lower IO and set driver locations earlier.

- radv: Save I/O usage data to both shader infos for merged stages.

- radv: Calculate tess patches and LDS use outside the backend compilers.

- radv: Determine tcs_in_out_eq in radv_pipeline instead of the compiler.

- radv: Fill some tess shader info earlier.

- radv: Reorder some NIR optimizations in preparation for the I/O changes.

- radv: Use new, NIR-based I/O lowering.

- radv/llvm: Only store TCS outputs where they are really needed.

- radv/llvm: Delete superfluous tess and ESGS I/O code.

- aco: Delete superfluous tess and ESGS I/O code.

- aco: Fix constant address offset calculation for ds_read2 instructions.

- ac/llvm: Fix alignment of shared load intrinsics.

- aco: Optimize workgroup exclusive scan to better avoid bank conflicts.

- aco: Align NGG scratch size to 16 so a single ds_read can always read it.

- aco: Remove useless s_setprio near gs_alloc_req.

- aco: Use s_setprio 3 at the beginning of every VS and TES.

- aco: Extract ngg_nogs_export_prim_id to a separate function.

- aco: Set block_kind_export_end in create_vs/fs_exports.

- aco: Emit fewer branches for NGG VS/TES with late primitive export.

- aco: Add a simple heuristic to decide early or late primitive export.

- aco: Mark VCC clobbered for iadd8 and iadd16 reductions on GFX6-7.

Tomeu Vizoso (17):

- ci: Fix selection of linker in Android builds

- ci: Move container files into their own dir

- ci: Move out expect files from .gitlab-ci

- ci: Disable two radeonsi jobs

- Revert “ci/panfrost: disable the rest of these jobs temporarily”

- Revert “ci/panfrost: Disable t860/radeonsi testing while the runners are struggling.”

- Revert “CI: Disable Panfrost T760”

- ci: Fix visibility property of LAVA jobs

- ci/fdo: Use trimmed traces for Valve games

- gallium/dri2: Pass the resource that corresponds to the plane

- ci: Use a single template for LAVA jobs

- ci: Set more reasonable timeouts for LAVA jobs

- ci: Don’t retry failed test runs

- ci: Disable t720 LAVA jobs

- Revert “ci: Disable t720 LAVA jobs”

- Revert “ci: Disable panfrost g52”

- Revert “ci: Disable panfrost t760”

Tony Wasserka (34):

- aco/ra: Update register use bounds before recursing in get_regs_for_copies

- aco/ra: Introduce PhysRegInterval helper class

- aco/ra: Conservatively refactor existing code to use PhysRegInterval

- aco/ra: Remove always-false conditions

- aco/ra: Add iterator interface for PhysRegInterval

- aco/ra: Use std::find_if(_not) to clean up get_reg_simple

- aco/ra: Use std::all_of to simplify a loop

- aco/ra: Conservatively refactor get_reg_specified to use PhysRegInterval

- aco/ra: Move commonly repeated code to a helper function

- aco/ra: Add helpers to test for intersection/containment of reg intervals

- aco/ra: Use std::all_of to simplify a loop

- aco/ra: Remove unused function parameter

- aco/ra: Use PhysReg for member functions of PhysRegInterval

- aco/ra: Use PhysReg when indexing into RegisterFile’s containers

- aco/ra: Use PhysRegInterval for collect_vars parameters

- aco/ra: Use PhysRegInterval for count_zero

- aco/ra: Fix print_regs using the wrong constant to check for blocked slots

- aco/ra: Fix build with print_regs enabled

- aco/ra: Remove preprocessor guards for print_regs

- aco/ra: Add helper to get a PhysRegInterval for the register demand

- aco: Fix vector::reserve() being called with the wrong size

- radv: Fix improper max_index_count argument for indexed draws

- ac: Add has_zero_index_buffer_bug to ac_gpu_info

- radv: Skip 0-sized index buffers only when necessary

- aco/ra: Avoid unnecessary copying of std::vectors

- aco/isel: Don’t emit unsupported i16<->f16 conversion opcodes on GFX6/7

- aco/isel: Fix i64/u64->float32 conversion for large inputs

- aco/isel: Don’t request sign extension when truncating signed integers

- aco/isel: Add documentation and asserts for convert_int

- aco/isel: Fix large inputs being truncated in int32->f16 conversions

- aco/isel: Add documentation for (u)int64->f16 conversion

- ci: skip pipeline_barrier tests that currently crash on RADV

- gitlab: rename RADV bug report template

- aco/spill: Fix improper handling of exec phis

Vasily Khoruzhick (10):

- lima: add precompile debug flag

- lima/ppir: don’t use list_length() in loop in regalloc and liveness analysis

- lima: update dEQP fails and skips lists

- lima: relax checks of imported BO

- lima: rename *_shader_state to *_compiled_shader

- lima: rename lima_{fs,vs}_bind_state to lima_{fs,vs}_uncompiled_shader

- lima: implement shader disk cache

- lima: compute nir_sha1 for shader key even if disk cache is disabled

- lima: use passed surface to get mipmap level for reload, not cbuf

- lima: limit number of draws per job

Vinson Lee (31):

- panfrost: Fix typos.

- nouveau: Fix typos.

- nv50/ir: Initialize DataArray members in constructor.

- r600/sfn: Remove StoreMerger unused member b.

- nv50/ir: Add InsertConstraintsPass constructor.

- nv50/ir: Initialize CodeEmitter members in constructor.

- nv50/ir: Initialize RegAlloc member func in constructor.

- clover: Add constructor for global_argument.

- lima: Fix typos.

- v3dv: Fix assert.

- nvc0/ir: Initialize NVC0LoweringPass member gpEmitAddress.

- nvc0/ir: Initialize SchedDataCalculator members in constructor.

- nv50/ir: Initialize BindArgumentsPass member sub in constructor.

- virgl: Convert errno to string.

- r600/sfn: Initialize FragmentShaderFromNir member m_pos_input.

- etnaviv: Fix memory leak in etna_vertex_elements_state_create.

- nv50/ir: Initialize ValueDef member origin in constructors.

- nv50/ir: Initialize Instruction members.

- aco: Initialize ds_state.front.writeMask.

- r600: Fix typos.

- llvmpipe: Fix typos.

- nir/lower_tex: Change coord type to int.

- gv100/ir: Initialize CodeEmitterGV100 members in constructor.

- zink: Remove leftover dead code.

- nv50/ir: Add constructor for NV50LegalizePostRA.

- iris: Fix typos.

- clover: Add constructor for sampler_argument.

- ac: Fix emit_split_buffer_store modulus operation.

- freedreno: Fix file descriptor leak.

- glsl: Initialize parcel_out_uniform_storage members.

- Remove leftover dead code.

Víctor Manuel Jáquez Leal (1):

- frontends/va/context: don’t set max_references with num_render_targets

Witold Baryluk (3):

- lavapipe: Defer lavapipe warning to CreateDevice

- util: Use explicit relaxed reads for u_queue

- radv: memset the alignment hole in cache_entry to 0

Xin He (1):

- virgl: use atomic operations when increase sub_ctx_id

Yannik Marek (1):

- turnip: fix alpha to coverage in no color and unused attachment cases

Yevhenii Kharchenko (2):

- st/mesa: fix PBO download for TEXTURE_1D_ARRAY textures

- intel/compiler: remove unused member ‘input_vue_map’

Yevhenii Kolesnikov (3):

- iris: only set point sprite overrides if actually using points

- nir/from_ssa: consider defs in sibling blocks

- nir/from_ssa: don’t check for interference within the same set

Yiwei Zhang (3):

- venus: properly enable WSI for different platforms

- venus: bring up Android support

- venus: implement vn_debug_init_once with os_get_option

Yogesh Mohan Marimuthu (7):

- ac/rgp: add ac_msgpack.h/c

- ac/rgp: add rgp co, col, pso data structures

- ac/rgp: add helper function to write rgp elf oject

- ac/rgp: expose data structure to populate co, col, pso database

- ac/rgp,radeonsi,radv: pass struct thread_trace_data to ac_sqtt_dump_data()

- ac/rgp: dump co, col, pso database to rgp profile file

- ac/rgp: set gfxip in elf_hdr.e_flags

chenli (1):

- mesa: update oudated members for debug and check

cheyang (3):

- frontend/dri: fix doesn’t support RGBA ordering still expose RGBA in config

- glsl: redeclare built-in variable with separate shader

- virgl: add astc 2d compressed formats