# The Mesa 3D Graphics Library

# Mesa 20.0.3 Release Notes / 2020-04-01

Mesa 20.0.3 is a bug fix release which fixes bugs found since the 20.0.2 release.

Mesa 20.0.3 implements the OpenGL 4.6 API, but the version reported by glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. Some drivers don't support all the features required in OpenGL 4.6. OpenGL 4.6 is only available if requested at context creation. Compatibility contexts may report a lower version depending on each driver.

Mesa 20.0.3 implements the Vulkan 1.2 API, but the version reported by the apiVersion property of the VkPhysicalDeviceProperties struct depends on the particular driver being used.

## SHA256 checksum

    d63aaf2c27143eded2f4f376f18f7a766ad997f8eeb96c357e8ade84e8a237af  mesa-20.0.3.tar.xz

## New features

## Bug fixes

- RADV: flickering textures in Q.U.B.E. 2 through Proton
- src/compiler/glsl/ast_to_hir.cpp:2134: ir_rvalue* ast_expression::do_hir(exec_list*, _mesa_glsl_parse_state*, bool): Assertion `result != NULL || !needs_rvalue' failed.
- [ACO] Reliable crash with RPCS3 that is not present with LLVM
- [RADV] vkCmdBindTransformFeedbackBuffersEXT pSizes optional parameter not handled
- soft-fp64: __fsat64 incorrectly returns NaN for a NaN input. It should return zero.
- Hang when using glWaitSync with multithreaded shared GL contexts

## Changes

Caio Marcelo de Oliveira Filho (1):

- mesa/main: Fix overflow in validation of DispatchComputeGroupSizeARB

Dylan Baker (6):

- docs/relnotes: Add sha256 sums for 20.0.2
- .pick_status.json: Update to cf62c2b2ac69637785f55b790fdd601c17e7e9d5
- .pick_status.json: Mark 672d10619980687acec329742f055f7f3796c1b8 as backported
- .pick_status.json: Mark c923de68dd0ab10a5a5fb3196f539707d046d897 as backported
- .pick_status.json: Mark 56de6f698e3f164d97f132203e8159ef0b8e9bb8 as denominated
- .pick_status.json: Update to aee004a7c8900938d1c17f0ac299d40001b383b0

Eric Engestrom (6):

- .pick_status.json: Update to 3252041a7872c49e53bb02ffe8b079b5fc43f15e
- .pick_status.json: Update to 12711939320e4fcd3a0d86af22da1042ad92035f
- .pick_status.json: Update to 05069e1f0794aadd40ce9269f858e50c64254388
- .pick_status.json: Update to 8970b7839aebefa7207c9535ac34ab4e8cc0ae25
- .pick_status.json: Update to 5f4d9b419a1c931ad468b8b22b8a95b1216891e4
- .pick_status.json: Update to 70ac7f5b0c46370075a35067c9f7dfe78e84b16d

Erik Faye-Lund (3):

- rbug: do not return void-value
- pipebuffer: clean up cast-warnings
- vtn/opencl: fully enable OpenCLstd_Clz

Francisco Jerez (1):

- intel/fs/gen12: Fix interaction of SWSB dependency combination with EU fusion workaround.

Greg V (1):

- amd/addrlib: fix build on non-x86 platforms

Ian Romanick (2):

- soft-fp64/fsat: Correctly handle NaN
- soft-fp64: Split a block that was missing a cast on a comparison

Jason Ekstrand (5):

- intel/blorp: Add support for swizzling fast-clear colors
- anv: Swizzle fast-clear values
- nir/lower_int64: Lower 8 and 16-bit downcasts with nir_lower_mov64
- anv: Account for the header in anv_state_stream_alloc
- spirv: Implement OpCopyObject and OpCopyLogical as blind copies

John Stultz (2):

- gallium: hud_context: Fix scalar initializer warning.
- vc4_bufmgr: Remove duplicative VC definition

Jordan Justen (2):

- intel: Update TGL PCI strings
- intel: Add TGL PCI ID

Lionel Landwerlin (5):

- isl: implement linear tiling row pitch requirement for display
- isl: properly filter supported display modifiers on Gen9+
- isl: only apply main surface ccs pitch constraint with CCS
- isl: drop min row pitch alignment when set by the driver
- intel: add new TGL pci ids

Marek Olšák (3):

- nir: fix clip/cull_distance_array_size in nir_lower_clip_cull_distance_arrays
- ac: fix fast division
- st/mesa: fix use of uninitialized memory due to st_nir_lower_builtin

Marek Vasut (1):

- etnaviv: Emit PE.ALPHA_COLOR_EXT* on GPUs with half-float support

Neil Armstrong (1):

- Revert "ci: Remove T820 from CI temporarily"

Pierre-Eric Pelloux-Prayer (1):

- st/mesa: disallow deferred flush if there are multiple contexts

Rhys Perry (11):

- nir/gather_info: handle emit_vertex_with_counter
- aco: set has_divergent_branch for discards in loops
- aco: handle missing second predecessors at merge block phis
- aco: skip NIR in unreachable merge blocks
- aco: improve check for unreachable loop continue blocks
- aco: emit IR in IF's merge block instead if the other side ends in a jump
- aco: fix boolean undef regclass
- nir/gather_info: fix per-vertex handling in try_mask_partial_io
- aco: implement 64-bit VGPR constant copies in handle_operands()
- glsl: fix race in instance getters
- util/u_queue: fix race in total_jobs_size access

Rob Clark (2):

- freedreno/ir3/ra: fix array liveranges
- util: fix u_fifo_pop()

Samuel Pitoiset (7):

- radv/gfx10: fix required subgroup size with VK_EXT_subgroup_size_control
- radv/gfx10: fix required ballot size with VK_EXT_subgroup_size_control
- radv: fix optional pSizes parameter when binding streamout buffers
- radv: enable VK_KHR_8bit_storage on GFX6-GFX7
- ac/nir: use llvm.amdgcn.rcp for nir_op_frcp
- ac/nir: use llvm.amdgcn.rsq for nir_op_frsq
- ac/nir: use llvm.amdgcn.rcp in ac_build_fdiv()

Tapani Pälli (1):

- glsl: set error_emitted true if type not ok for assignment

Thomas Hellstrom (1):

- svga, winsys/svga: Fix persistent memory discard maps

Timothy Arceri (3):

- glsl: fix varying packing for 64bit integers
- nir: fix packing of TCS varyings not read by the TES
- nir: fix crash in varying packing on interface mismatch

Timur Kristóf (1):

- radv/llvm: fix subgroup shuffle for chips without bpermute