Skip to content

Commit 138a2af

Browse files
committed
Merge tag 'mesa-23.3.3' into lineage-18.1
mesa-23.3.3
2 parents 587e92f + d495e8d commit 138a2af

40 files changed

+4504
-122
lines changed

.pick_status.json

+4,032-2
Large diffs are not rendered by default.

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
23.3.2
1+
23.3.3

docs/relnotes.rst

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Release Notes
33

44
The release notes summarize what's new or changed in each Mesa release.
55

6+
- :doc:`23.3.3 release notes <relnotes/23.3.3>`
67
- :doc:`23.3.2 release notes <relnotes/23.3.2>`
78
- :doc:`23.3.1 release notes <relnotes/23.3.1>`
89
- :doc:`23.3.0 release notes <relnotes/23.3.0>`
@@ -405,6 +406,7 @@ The release notes summarize what's new or changed in each Mesa release.
405406
:maxdepth: 1
406407
:hidden:
407408

409+
23.3.3 <relnotes/23.3.3>
408410
23.3.2 <relnotes/23.3.2>
409411
23.3.1 <relnotes/23.3.1>
410412
23.3.0 <relnotes/23.3.0>

docs/relnotes/23.3.2.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ SHA256 checksum
1919

2020
::
2121

22-
TBD.
22+
3cfcb81fa16f89c56abe3855d2637d396ee4e03849b659000a6b8e5f57e69adc mesa-23.3.2.tar.xz
2323

2424

2525
New features

docs/relnotes/23.3.3.rst

+155
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
Mesa 23.3.3 Release Notes / 2024-01-10
2+
======================================
3+
4+
Mesa 23.3.3 is a bug fix release which fixes bugs found since the 23.3.2 release.
5+
6+
Mesa 23.3.3 implements the OpenGL 4.6 API, but the version reported by
7+
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
8+
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
9+
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
10+
4.6 is **only** available if requested at context creation.
11+
Compatibility contexts may report a lower version depending on each driver.
12+
13+
Mesa 23.3.3 implements the Vulkan 1.3 API, but the version reported by
14+
the apiVersion property of the VkPhysicalDeviceProperties struct
15+
depends on the particular driver being used.
16+
17+
SHA256 checksum
18+
---------------
19+
20+
::
21+
22+
TBD.
23+
24+
25+
New features
26+
------------
27+
28+
- None
29+
30+
31+
Bug fixes
32+
---------
33+
34+
- Error during SPIR-V parsing of OpCopyLogical
35+
- radv: Atlas Fallen corrupted rendering
36+
- intel: Require 64KB alignment when using CCS and multiple engines
37+
- 23.3.2 regression: kms_swrast_dri.so segfaults
38+
- Mesa is not compatible with Python 3.12 due to use of distutils
39+
- anv: importing memory for a compressed image using modifier is hitting an assert
40+
41+
42+
Changes
43+
-------
44+
45+
Connor Abbott (1):
46+
47+
- ir3/legalize: Fix helper propagation with b.any/b.all/getone
48+
49+
Daniel Schürmann (1):
50+
51+
- nir/opt_move_discards_to_top: don't schedule discard/demote across subgroup operations
52+
53+
Dave Airlie (5):
54+
55+
- gallivm: handle llvm 16 atexit ordering problems.
56+
- intel/compiler: fix release build unused variable.
57+
- llvmpipe: fix caching for texture shaders.
58+
- intel/compiler: reemit boolean resolve for inverted if on gen5
59+
- radv: don't emit cp dma packets on video rings.
60+
61+
Eric Engestrom (13):
62+
63+
- docs: add sha256sum for 23.3.2
64+
- .pick_status.json: Mark eb5bb5c784e97c533e30b348e82e446ac0da59c8 as denominated
65+
- .pick_status.json: Update to ebee672ef87794f3f4201270623a92f34e62b8ff
66+
- .pick_status.json: Mark 060439bdf0e74f0f2e255d0a81b5356f9a2f5457 as denominated
67+
- .pick_status.json: Mark 8d0e70f628b745ad81124e0c3fe5e46ea84f6b46 as denominated
68+
- .pick_status.json: Update to 39c8cca34fb72db055df18abf1d473e099f4b05b
69+
- .pick_status.json: Update to 2c078bfd18cae0ed1a0a3916020e49fb74668504
70+
- .pick_status.json: Update to e2a7c877ad1fd6bda4032f707eea7646e5229969
71+
- .pick_status.json: Update to 031978933151e95690e93919e7bfd9f1753f2794
72+
- .pick_status.json: Mark fbe4e16db2d369c3e54067d17f81bdce8661a461 as denominated
73+
- .pick_status.json: Mark b38c776690c9c39b04c57d74f9b036de56995aff as denominated
74+
- .pick_status.json: Update to f6d2df5a7542025022e69b81dbe3af3e51ea5cd3
75+
- .pick_status.json: Update to 67ad1142cf6afe61de834cefeddb4be06382899f
76+
77+
Erik Faye-Lund (2):
78+
79+
- zink: update profile schema
80+
- zink: use KHR version of maint5 features
81+
82+
Friedrich Vock (1):
83+
84+
- radv/rt: Free traversal NIR after compilation
85+
86+
Georg Lehmann (1):
87+
88+
- aco: fix applying input modifiers to DPP8
89+
90+
Jonathan Gray (1):
91+
92+
- zink: put sysmacros.h include under #ifdef MAJOR_IN_SYSMACROS
93+
94+
José Roberto de Souza (2):
95+
96+
- anv: Assume that imported bos already have flat CCS requirements satisfied
97+
- anv: Increase ANV_MAX_QUEUE_FAMILIES
98+
99+
Karol Herbst (2):
100+
101+
- zink: lock screen queue on context_destroy and CreateSwapchain
102+
- zink: fix heap-use-after-free on batch_state with sub-allocated pipe_resources
103+
104+
Konstantin Seurer (2):
105+
106+
- vtn: Remove transpose(m0)*m1 fast path
107+
- vtn: Allow for OpCopyLogical with different but compatible types
108+
109+
Leo Liu (1):
110+
111+
- gallium/vl: match YUYV/UYVY swizzle with change of color channels
112+
113+
Lionel Landwerlin (2):
114+
115+
- isl: implement Wa_22015614752
116+
- intel/fs: fix depth compute state for unchanged depth layout
117+
118+
Marek Olšák (1):
119+
120+
- glthread: don't unroll draws using user VBOs with GLES
121+
122+
Mary Guillemard (2):
123+
124+
- zink: Initialize pQueueFamilyIndices for image query / create
125+
- zink: Always fill external_only in zink_query_dmabuf_modifiers
126+
127+
Mike Blumenkrantz (1):
128+
129+
- zink: enforce maxTexelBufferElements for texel buffer sizing
130+
131+
Rhys Perry (1):
132+
133+
- aco/tests: use more raw strings
134+
135+
Samuel Pitoiset (2):
136+
137+
- radv: fix binding partial depth/stencil views with dynamic rendering
138+
- radv: disable stencil test without a stencil attachment
139+
140+
Sil Vilerino (2):
141+
142+
- Revert "d3d12: Only destroy the winsys during screen destruction, not reset"
143+
- Revert "d3d12: Fix screen->winsys leak in d3d12_screen"
144+
145+
Vinson Lee (1):
146+
147+
- ac/rgp: Fix single-bit-bitfield-constant-conversion warning
148+
149+
Yonggang Luo (1):
150+
151+
- meson: Support for both packaging and distutils
152+
153+
antonino (1):
154+
155+
- egl: only check dri3 on X11

meson.build

+5-2
Original file line numberDiff line numberDiff line change
@@ -886,9 +886,12 @@ prog_python = import('python').find_installation('python3')
886886
has_mako = run_command(
887887
prog_python, '-c',
888888
'''
889-
from distutils.version import StrictVersion
889+
try:
890+
from packaging.version import Version
891+
except:
892+
from distutils.version import StrictVersion as Version
890893
import mako
891-
assert StrictVersion(mako.__version__) >= StrictVersion("0.8.0")
894+
assert Version(mako.__version__) >= Version("0.8.0")
892895
''', check: false)
893896
if has_mako.returncode() != 0
894897
error('Python (3.x) mako module >= 0.8.0 required to build mesa.')

src/amd/ci/radv-navi10-aco-fails.txt

-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
# New CTS failures in 1.3.7.0
22
dEQP-VK.api.version_check.unavailable_entry_points,Fail
3-
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail

src/amd/ci/radv-polaris10-aco-fails.txt

-1
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,3 @@ dEQP-VK.texture.mipmap.cubemap.image_view_min_lod.base_level.nearest_nearest,Fai
2020

2121
# New CTS failures in 1.3.7.0.
2222
dEQP-VK.api.version_check.unavailable_entry_points,Fail
23-
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail

src/amd/ci/radv-renoir-aco-fails.txt

-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
# New CTS failures in 1.3.7.0.
22
dEQP-VK.api.version_check.unavailable_entry_points,Fail
3-
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail

src/amd/common/ac_rgp.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ struct sqtt_file_chunk_header {
7979
struct sqtt_file_header_flags {
8080
union {
8181
struct {
82-
int32_t is_semaphore_queue_timing_etw : 1;
83-
int32_t no_queue_semaphore_timestamps : 1;
84-
int32_t reserved : 30;
82+
uint32_t is_semaphore_queue_timing_etw : 1;
83+
uint32_t no_queue_semaphore_timestamps : 1;
84+
uint32_t reserved : 30;
8585
};
8686

8787
uint32_t value;

src/amd/compiler/aco_optimizer.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1440,15 +1440,15 @@ label_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
14401440
instr->operands[i].setTemp(info.temp);
14411441
} else if (info.is_neg() && can_use_mod && mod_bitsize_compat &&
14421442
can_eliminate_fcanonicalize(ctx, instr, info.temp, i)) {
1443-
if (!instr->isDPP() && !instr->isSDWA())
1443+
if (!instr->isDPP16() && can_use_VOP3(ctx, instr))
14441444
instr->format = asVOP3(instr->format);
14451445
instr->operands[i].setTemp(info.temp);
14461446
if (!instr->valu().abs[i])
14471447
instr->valu().neg[i] = true;
14481448
}
14491449
if (info.is_abs() && can_use_mod && mod_bitsize_compat &&
14501450
can_eliminate_fcanonicalize(ctx, instr, info.temp, i)) {
1451-
if (!instr->isDPP() && !instr->isSDWA())
1451+
if (!instr->isDPP16() && can_use_VOP3(ctx, instr))
14521452
instr->format = asVOP3(instr->format);
14531453
instr->operands[i] = Operand(info.temp);
14541454
instr->valu().abs[i] = true;

src/amd/compiler/tests/glsl_scraper.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@ def __init__(self, *args):
2828
}
2929

3030
base_layout_qualifier_id_re = r'({0}\s*=\s*(?P<{0}>\d+))'
31-
id_re = '(?P<name_%d>[^(gl_)]\w+)'
32-
type_re = '(?P<dtype_%d>\w+)'
31+
id_re = r'(?P<name_%d>[^(gl_)]\w+)'
32+
type_re = r'(?P<dtype_%d>\w+)'
3333
location_re = base_layout_qualifier_id_re.format('location')
3434
component_re = base_layout_qualifier_id_re.format('component')
3535
binding_re = base_layout_qualifier_id_re.format('binding')
3636
set_re = base_layout_qualifier_id_re.format('set')
3737
unk_re = r'\w+(=\d+)?'
3838
layout_qualifier_re = r'layout\W*\((%s)+\)' % '|'.join([location_re, binding_re, set_re, unk_re, '[, ]+'])
39-
ubo_decl_re = 'uniform\W+%s(\W*{)?(?P<type_ubo>)' % (id_re%0)
40-
ssbo_decl_re = 'buffer\W+%s(\W*{)?(?P<type_ssbo>)' % (id_re%1)
39+
ubo_decl_re = r'uniform\W+%s(\W*{)?(?P<type_ubo>)' % (id_re%0)
40+
ssbo_decl_re = r'buffer\W+%s(\W*{)?(?P<type_ssbo>)' % (id_re%1)
4141
image_buffer_decl_re = r'uniform\W+imageBuffer\w+%s;(?P<type_img_buf>)' % (id_re%2)
4242
image_decl_re = r'uniform\W+image\w+\W+%s;(?P<type_img>)' % (id_re%3)
4343
texture_buffer_decl_re = r'uniform\W+textureBuffer\w+%s;(?P<type_tex_buf>)' % (id_re%4)

src/amd/vulkan/radv_cmd_buffer.c

+33-12
Original file line numberDiff line numberDiff line change
@@ -2271,17 +2271,19 @@ radv_emit_primitive_topology(struct radv_cmd_buffer *cmd_buffer)
22712271
static void
22722272
radv_emit_depth_control(struct radv_cmd_buffer *cmd_buffer)
22732273
{
2274+
const struct radv_rendering_state *render = &cmd_buffer->state.render;
22742275
struct radv_dynamic_state *d = &cmd_buffer->state.dynamic;
2276+
const bool stencil_test_enable =
2277+
d->vk.ds.stencil.test_enable && (render->ds_att_aspects & VK_IMAGE_ASPECT_STENCIL_BIT);
22752278

2276-
radeon_set_context_reg(cmd_buffer->cs, R_028800_DB_DEPTH_CONTROL,
2277-
S_028800_Z_ENABLE(d->vk.ds.depth.test_enable ? 1 : 0) |
2278-
S_028800_Z_WRITE_ENABLE(d->vk.ds.depth.write_enable ? 1 : 0) |
2279-
S_028800_ZFUNC(d->vk.ds.depth.compare_op) |
2280-
S_028800_DEPTH_BOUNDS_ENABLE(d->vk.ds.depth.bounds_test.enable ? 1 : 0) |
2281-
S_028800_STENCIL_ENABLE(d->vk.ds.stencil.test_enable ? 1 : 0) |
2282-
S_028800_BACKFACE_ENABLE(d->vk.ds.stencil.test_enable ? 1 : 0) |
2283-
S_028800_STENCILFUNC(d->vk.ds.stencil.front.op.compare) |
2284-
S_028800_STENCILFUNC_BF(d->vk.ds.stencil.back.op.compare));
2279+
radeon_set_context_reg(
2280+
cmd_buffer->cs, R_028800_DB_DEPTH_CONTROL,
2281+
S_028800_Z_ENABLE(d->vk.ds.depth.test_enable ? 1 : 0) |
2282+
S_028800_Z_WRITE_ENABLE(d->vk.ds.depth.write_enable ? 1 : 0) | S_028800_ZFUNC(d->vk.ds.depth.compare_op) |
2283+
S_028800_DEPTH_BOUNDS_ENABLE(d->vk.ds.depth.bounds_test.enable ? 1 : 0) |
2284+
S_028800_STENCIL_ENABLE(stencil_test_enable) | S_028800_BACKFACE_ENABLE(stencil_test_enable) |
2285+
S_028800_STENCILFUNC(d->vk.ds.stencil.front.op.compare) |
2286+
S_028800_STENCILFUNC_BF(d->vk.ds.stencil.back.op.compare));
22852287
}
22862288

22872289
static void
@@ -5861,6 +5863,11 @@ radv_BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBegi
58615863
render->ds_att.format = inheritance_info->depthAttachmentFormat;
58625864
if (inheritance_info->stencilAttachmentFormat != VK_FORMAT_UNDEFINED)
58635865
render->ds_att.format = inheritance_info->stencilAttachmentFormat;
5866+
5867+
if (vk_format_has_depth(render->ds_att.format))
5868+
render->ds_att_aspects |= VK_IMAGE_ASPECT_DEPTH_BIT;
5869+
if (vk_format_has_stencil(render->ds_att.format))
5870+
render->ds_att_aspects |= VK_IMAGE_ASPECT_STENCIL_BIT;
58645871
}
58655872

58665873
cmd_buffer->state.inherited_pipeline_statistics = pBeginInfo->pInheritanceInfo->pipelineStatistics;
@@ -7716,6 +7723,7 @@ radv_CmdBeginRendering(VkCommandBuffer commandBuffer, const VkRenderingInfo *pRe
77167723
}
77177724

77187725
struct radv_attachment ds_att = {.iview = NULL};
7726+
VkImageAspectFlags ds_att_aspects = 0;
77197727
const VkRenderingAttachmentInfo *d_att_info = pRenderingInfo->pDepthAttachment;
77207728
const VkRenderingAttachmentInfo *s_att_info = pRenderingInfo->pStencilAttachment;
77217729
if ((d_att_info != NULL && d_att_info->imageView != VK_NULL_HANDLE) ||
@@ -7751,7 +7759,16 @@ radv_CmdBeginRendering(VkCommandBuffer commandBuffer, const VkRenderingInfo *pRe
77517759

77527760
assert(d_iview == NULL || s_iview == NULL || d_iview == s_iview);
77537761
ds_att.iview = d_iview ? d_iview : s_iview, ds_att.format = ds_att.iview->vk.format;
7754-
radv_initialise_ds_surface(cmd_buffer->device, &ds_att.ds, ds_att.iview);
7762+
7763+
if (d_iview && s_iview) {
7764+
ds_att_aspects = VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
7765+
} else if (d_iview) {
7766+
ds_att_aspects = VK_IMAGE_ASPECT_DEPTH_BIT;
7767+
} else {
7768+
ds_att_aspects = VK_IMAGE_ASPECT_STENCIL_BIT;
7769+
}
7770+
7771+
radv_initialise_ds_surface(cmd_buffer->device, &ds_att.ds, ds_att.iview, ds_att_aspects);
77557772

77567773
assert(d_res_iview == NULL || s_res_iview == NULL || d_res_iview == s_res_iview);
77577774
ds_att.resolve_iview = d_res_iview ? d_res_iview : s_res_iview;
@@ -7800,14 +7817,15 @@ radv_CmdBeginRendering(VkCommandBuffer commandBuffer, const VkRenderingInfo *pRe
78007817
render->color_att_count = pRenderingInfo->colorAttachmentCount;
78017818
typed_memcpy(render->color_att, color_att, render->color_att_count);
78027819
render->ds_att = ds_att;
7820+
render->ds_att_aspects = ds_att_aspects;
78037821
render->vrs_att = vrs_att;
78047822
render->vrs_texel_size = vrs_texel_size;
78057823
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_FRAMEBUFFER;
78067824

78077825
if (cmd_buffer->device->physical_device->rad_info.rbplus_allowed)
78087826
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_RBPLUS;
78097827

7810-
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_DEPTH_BIAS;
7828+
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_DEPTH_BIAS | RADV_CMD_DIRTY_DYNAMIC_STENCIL_TEST_ENABLE;
78117829

78127830
if (render->vrs_att.iview && cmd_buffer->device->physical_device->rad_info.gfx_level == GFX10_3) {
78137831
if (render->ds_att.iview) {
@@ -10592,7 +10610,10 @@ radv_barrier(struct radv_cmd_buffer *cmd_buffer, const VkDependencyInfo *dep_inf
1059210610
}
1059310611

1059410612
radv_gang_barrier(cmd_buffer, 0, dst_stage_mask);
10595-
radv_cp_dma_wait_for_stages(cmd_buffer, src_stage_mask);
10613+
10614+
const bool is_gfx_or_ace = cmd_buffer->qf == RADV_QUEUE_GENERAL || cmd_buffer->qf == RADV_QUEUE_COMPUTE;
10615+
if (is_gfx_or_ace)
10616+
radv_cp_dma_wait_for_stages(cmd_buffer, src_stage_mask);
1059610617

1059710618
cmd_buffer->state.flush_bits |= dst_flush_bits;
1059810619

src/amd/vulkan/radv_device.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -1842,7 +1842,7 @@ radv_initialise_vrs_surface(struct radv_image *image, struct radv_buffer *htile_
18421842

18431843
void
18441844
radv_initialise_ds_surface(const struct radv_device *device, struct radv_ds_buffer_info *ds,
1845-
struct radv_image_view *iview)
1845+
struct radv_image_view *iview, VkImageAspectFlags ds_aspects)
18461846
{
18471847
unsigned level = iview->vk.base_mip_level;
18481848
unsigned format, stencil_format;
@@ -1859,7 +1859,9 @@ radv_initialise_ds_surface(const struct radv_device *device, struct radv_ds_buff
18591859
stencil_format = surf->has_stencil ? V_028044_STENCIL_8 : V_028044_STENCIL_INVALID;
18601860

18611861
uint32_t max_slice = radv_surface_max_layer_count(iview) - 1;
1862-
ds->db_depth_view = S_028008_SLICE_START(iview->vk.base_array_layer) | S_028008_SLICE_MAX(max_slice);
1862+
ds->db_depth_view = S_028008_SLICE_START(iview->vk.base_array_layer) | S_028008_SLICE_MAX(max_slice) |
1863+
S_028008_Z_READ_ONLY(!(ds_aspects & VK_IMAGE_ASPECT_DEPTH_BIT)) |
1864+
S_028008_STENCIL_READ_ONLY(!(ds_aspects & VK_IMAGE_ASPECT_STENCIL_BIT));
18631865
if (device->physical_device->rad_info.gfx_level >= GFX10) {
18641866
ds->db_depth_view |=
18651867
S_028008_SLICE_START_HI(iview->vk.base_array_layer >> 11) | S_028008_SLICE_MAX_HI(max_slice >> 11);

src/amd/vulkan/radv_pipeline_rt.c

+1
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,7 @@ radv_rt_compile_shaders(struct radv_device *device, struct vk_pipeline_cache *ca
609609
radv_shader_layout_init(pipeline_layout, MESA_SHADER_INTERSECTION, &traversal_stage.layout);
610610
result = radv_rt_nir_to_asm(device, cache, pCreateInfo, key, pipeline, false, &traversal_stage, NULL, NULL,
611611
&pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]);
612+
ralloc_free(traversal_module.nir);
612613

613614
cleanup:
614615
for (uint32_t i = 0; i < pCreateInfo->stageCount; i++)

0 commit comments

Comments
 (0)