Skip to content
Commits on Source (28)
......@@ -39,7 +39,7 @@ LOCAL_CFLAGS += \
-Wno-initializer-overrides \
-Wno-mismatched-tags \
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"
-DPACKAGE_BUGREPORT=\"https://gitlab.freedesktop.org/mesa/mesa/issues\"
# XXX: The following __STDC_*_MACROS defines should not be needed.
# It's likely due to a bug elsewhere, but let's temporarily add them
......@@ -103,9 +103,12 @@ ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true)
LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
endif
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
ifeq ($(TARGET_ARCH),x86)
LOCAL_CFLAGS += \
-DUSE_X86_ASM
endif
endif
ifeq ($(ARCH_ARM_HAVE_NEON),true)
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
......
......@@ -83,6 +83,13 @@ endif
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
# host and target must be the same arch to generate matypes.h
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
MESA_ENABLE_ASM := true
else
MESA_ENABLE_ASM := false
endif
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
MESA_ENABLE_LLVM := true
endif
......
......@@ -73,7 +73,7 @@ with open("VERSION") as f:
mesa_version = f.read().strip()
env.Append(CPPDEFINES = [
('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
('PACKAGE_BUGREPORT', '\\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\\"'),
('PACKAGE_BUGREPORT', '\\"https://gitlab.freedesktop.org/mesa/mesa/issues\\"'),
])
# Includes
......
......@@ -4,3 +4,15 @@ da5ebe30105f70e3520ce3ae145793b755552569
# Jason doesn't want this applied to 19.2 (it's a revert)
d15fe8ca8262d502435c4f83985ac414f950bc5f
# This doesn't apply to 19.2
f833b4cada07b746a10ffa4d93fcd821920c3cb1
d2db43fcad6a2ea2070ff5f7884411f4b7d3925c
66f2aa6ccd0b226eebe2c1a46281160b0a54d522
# The author requested that this not be applied to 19.2
dcc0e23438f3e5929c2ef74d57e8207be25ecb41
# This doesn't apply cleanly, and no one really cares about this file on stable
# branches anyway.
bcd9224728dcb8d8fe4bcddc4bd9b2c36fcfe9dd
......@@ -32,7 +32,7 @@ is_sha_nomination()
{
fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
sed -e 's/'"$2"'/\nfixes:/Ig' | \
grep -Eo 'fixes:[a-f0-9]{8,40}'`
grep -Eo 'fixes:[a-f0-9]{4,40}'`
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
if test $fixes_count -eq 0; then
......@@ -92,7 +92,7 @@ is_revert_nomination()
}
# Use the last branchpoint as our limit for the search
latest_branchpoint=`git merge-base origin/master HEAD`
latest_branchpoint=`git merge-base upstream/master HEAD`
# List all the commits between day 1 and the branch point...
git log --reverse --pretty=%H $latest_branchpoint > already_landed
......@@ -103,7 +103,7 @@ git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_bra
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
# Grep for potential candidates
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..origin/master |\
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..upstream/master |\
while read sha
do
# Check to see whether the patch is on the ignore list.
......@@ -143,7 +143,7 @@ do
esac
printf "[ %8s ] " "$tag"
git --no-pager show --no-patch --oneline $sha
git --no-pager show --no-patch --pretty=oneline $sha
done
rm -f already_picked
......
......@@ -24,8 +24,8 @@ The old bug database on SourceForge is no longer used.
<p>
To file a Mesa bug, go to
<a href="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa">
Bugzilla on freedesktop.org</a>
<a href="https://gitlab.freedesktop.org/mesa/mesa/issues">
GitLab on freedesktop.org</a>
</p>
<p>
......
......@@ -29,7 +29,7 @@ immediately checked into git because not enough people are testing them.
Just applying patches, testing and reporting back is helpful.
<li>
<b>Driver debugging.</b>
There are plenty of open bugs in the <a href="https://bugs.freedesktop.org/describecomponents.cgi?product=Mesa">bug database</a>.
There are plenty of open bugs in the <a href="https://gitlab.freedesktop.org/mesa/mesa/issues">bug database</a>.
<li>
<b>Remove aliasing warnings.</b>
Enable gcc's <code>-Wstrict-aliasing=2 -fstrict-aliasing</code> arguments, and
......
......@@ -285,7 +285,7 @@ To setup the branchpoint:
<p>
Now go to
<a href="https://bugs.freedesktop.org/editversions.cgi?action=add&amp;product=Mesa" target="_parent">Bugzilla</a> and add the new Mesa version X.Y.
<a href="https://gitlab.freedesktop.org/mesa/mesa/-/milestones" target="_parent">gitlab</a> and add the new Mesa version X.Y.
</p>
<p>
......
......@@ -29,6 +29,11 @@ Some drivers don't support all the features required in OpenGL 4.5. OpenGL
4.5 is <strong>only</strong> available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
</p>
<p>
Mesa 19.2.0 implements the Vulkan 1.1 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
</p>
<h2>SHA256 checksums</h2>
<pre>
......@@ -60,13 +65,385 @@ TBD.
<h2>Bug fixes</h2>
<ul>
<li>TBD</li>
<ul>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103674">Bug 103674</a> - u_queue.c:173:7: error: implicit declaration of function 'timespec_get' is invalid in C99</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104395">Bug 104395</a> - [CTS] GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels tests fail on 32bit Mesa</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110765">Bug 110765</a> - ANV regression: Assertion `pass-&gt;attachment_count == framebuffer-&gt;attachment_count' failed</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110814">Bug 110814</a> - KWin compositor crashes on launch</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111069">Bug 111069</a> - Assertion fails in nir_opt_remove_phis.c during compilation of SPIR-V shader</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111213">Bug 111213</a> - VA-API nouveau SIGSEGV and asserts</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111241">Bug 111241</a> - Shadertoy shader causing hang</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111248">Bug 111248</a> - Navi10 Font rendering issue in Overwatch</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111271">Bug 111271</a> - Crash in eglMakeCurrent</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111308">Bug 111308</a> - [Regression, NIR, bisected] Black squares in Unigine Heaven via DXVK</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111401">Bug 111401</a> - Vulkan overlay layer - async compute not supported, making overlay disappear in Doom</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111405">Bug 111405</a> - Some infinite 'do{}while' loops lead mesa to an infinite compilation</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111411">Bug 111411</a> - SPIR-V shader leads to GPU hang, sometimes making machine unstable</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111414">Bug 111414</a> - [REGRESSION] [BISECTED] Segmentation fault in si_bind_blend_state after removal of the blend state NULL check</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111467">Bug 111467</a> - WOLF RPG Editor + Gallium Nine Standalone: Rendering issue when using Iris driver</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111490">Bug 111490</a> - [REGRESSION] [BISECTED] Shadow Tactics: Blades of the Shogun - problems rendering water</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111493">Bug 111493</a> - In the game The Surge (378540) - textures disappear then appear again when I change the camera angle view</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111509">Bug 111509</a> - [regression][bisected] piglit.spec.ext_image_dma_buf_import.ext_image_dma_buf_import-export fails on iris</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111522">Bug 111522</a> - [bisected] Supraland no longer start</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111529">Bug 111529</a> - EGL_PLATFORM=drm doesn't expose MESA_query_driver extension</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111552">Bug 111552</a> - Geekbench 5.0 Vulkan compute benchmark fails on Anvil</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111566">Bug 111566</a> - [REGRESSION] [BISECTED] Large CS workgroup sizes broken in combination with FP64 on Intel.</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111576">Bug 111576</a> - [bisected] Performance regression in X4:Foundations in 19.2</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111676">Bug 111676</a> - Tropico 6 apitrace throws error into logs</li>
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111734">Bug 111734</a> - Geometry shader with double interpolators fails in LLVM</li>
</ul>
</ul>
<h2>Changes</h2>
<ul>
<li>TBD</li>
<p>Adam Jackson (1):</p>
<ul>
<li>docs: Update bug report URLs for the gitlab migration</li>
</ul>
<p>Alex Smith (1):</p>
<ul>
<li>radv: Change memory type order for GPUs without dedicated VRAM</li>
</ul>
<p>Alyssa Rosenzweig (1):</p>
<ul>
<li>pan/midgard: Fix writeout combining</li>
</ul>
<p>Andres Gomez (1):</p>
<ul>
<li>docs: Add the maximum implemented Vulkan API version in 19.2 rel notes</li>
</ul>
<p>Andres Rodriguez (1):</p>
<ul>
<li>radv: additional query fixes</li>
</ul>
<p>Arcady Goldmints-Orlov (1):</p>
<ul>
<li>anv: fix descriptor limits on gen8</li>
</ul>
<p>Bas Nieuwenhuizen (6):</p>
<ul>
<li>radv: Use correct vgpr_comp_cnt for VS if both prim_id and instance_id are needed.</li>
<li>radv: Emit VGT_GS_ONCHIP_CNTL for tess on GFX10.</li>
<li>radv: Disable NGG for geometry shaders.</li>
<li>Revert "ac/nir: Lower large indirect variables to scratch"</li>
<li>tu: Set up glsl types.</li>
<li>radv: Add workaround for hang in The Surge 2.</li>
</ul>
<p>Caio Marcelo de Oliveira Filho (2):</p>
<ul>
<li>nir/lower_explicit_io: Handle 1 bit loads and stores</li>
<li>glsl/nir: Avoid overflow when setting max_uniform_location</li>
</ul>
<p>Connor Abbott (1):</p>
<ul>
<li>radv: Call nir_propagate_invariant()</li>
</ul>
<p>Danylo Piliaiev (3):</p>
<ul>
<li>nir/loop_unroll: Prepare loop for unrolling in wrapper_unroll</li>
<li>nir/loop_analyze: Treat do{}while(false) loops as 0 iterations</li>
<li>tgsi_to_nir: Translate TGSI_INTERPOLATE_COLOR as INTERP_MODE_NONE</li>
</ul>
<p>Dave Airlie (2):</p>
<ul>
<li>virgl: fix format conversion for recent gallium changes.</li>
<li>gallivm: fix atomic compare-and-swap</li>
</ul>
<p>Dave Stevenson (1):</p>
<ul>
<li>broadcom/v3d: Allow importing linear BOs with arbitrary offset/stride.</li>
</ul>
<p>Dylan Baker (9):</p>
<ul>
<li>bump version to 19.2-rc2</li>
<li>nir: Add is_not_negative helper function</li>
<li>Bump version for rc3</li>
<li>meson: don't generate file into subdirs</li>
<li>add patches to be ignored</li>
<li>Bump version for 19.2.0-rc4</li>
<li>cherry-ignore: Add patches</li>
<li>rehardcode from origin/master to upstream/master</li>
<li>bin/get-pick-list: use --oneline=pretty instead of --oneline</li>
</ul>
<p>Emil Velikov (1):</p>
<ul>
<li>Update version to 19.2.0-rc1</li>
</ul>
<p>Eric Engestrom (14):</p>
<ul>
<li>ttn: fix 64-bit shift on 32-bit `1`</li>
<li>egl: fix deadlock in malloc error path</li>
<li>util/os_file: fix double-close()</li>
<li>anv: fix format string in error message</li>
<li>freedreno/drm-shim: fix mem leak</li>
<li>nir: fix memleak in error path</li>
<li>anv: add support for driconf</li>
<li>wsi: add minImageCount override</li>
<li>anv: add support for vk_x11_override_min_image_count</li>
<li>amd: move adaptive sync to performance section, as it is defined in xmlpool</li>
<li>radv: add support for vk_x11_override_min_image_count</li>
<li>drirc: override minImageCount=2 for gfxbench</li>
<li>gl: drop incorrect pkg-config file for glvnd</li>
<li>meson: re-add incorrect pkg-config files with GLVND for backward compatibility</li>
</ul>
<p>Erik Faye-Lund (2):</p>
<ul>
<li>gallium/auxiliary/indices: consistently apply start only to input</li>
<li>util: fix SSE-version needed for double opcodes</li>
</ul>
<p>Haihao Xiang (1):</p>
<ul>
<li>i965: support AYUV/XYUV for external import only</li>
</ul>
<p>Hal Gentz (2):</p>
<ul>
<li>glx: Fix SEGV due to dereferencing a NULL ptr from XCB-GLX.</li>
<li>gallium/osmesa: Fix the inability to set no context as current.</li>
</ul>
<p>Iago Toral Quiroga (1):</p>
<ul>
<li>v3d: make sure we have enough space in the CL for the primitive counts packet</li>
</ul>
<p>Ian Romanick (8):</p>
<ul>
<li>nir/algrbraic: Don't optimize open-coded bitfield reverse when lowering is enabled</li>
<li>intel/compiler: Request bitfield_reverse lowering on pre-Gen7 hardware</li>
<li>nir/algebraic: Mark some value range analysis-based optimizations imprecise</li>
<li>nir/range-analysis: Adjust result range of exp2 to account for flush-to-zero</li>
<li>nir/range-analysis: Adjust result range of multiplication to account for flush-to-zero</li>
<li>nir/range-analysis: Fix incorrect fadd range result for (ne_zero, ne_zero)</li>
<li>nir/range-analysis: Handle constants in nir_op_mov just like nir_op_bcsel</li>
<li>nir/algebraic: Do not apply late DPH optimization in vertex processing stages</li>
</ul>
<p>Ilia Mirkin (1):</p>
<ul>
<li>gallium/vl: use compute preference for all multimedia, not just blit</li>
</ul>
<p>Jason Ekstrand (9):</p>
<ul>
<li>anv: Bump maxComputeWorkgroupSize</li>
<li>nir: Handle complex derefs in nir_split_array_vars</li>
<li>nir: Don't infinitely recurse in lower_ssa_defs_to_regs_block</li>
<li>nir: Add a block_is_unreachable helper</li>
<li>nir/repair_ssa: Repair dominance for unreachable blocks</li>
<li>nir/repair_ssa: Insert deref casts when needed</li>
<li>nir/dead_cf: Repair SSA if the pass makes progress</li>
<li>intel/fs: Handle UNDEF in split_virtual_grfs</li>
<li>nir/repair_ssa: Replace the unreachable check with the phi builder</li>
</ul>
<p>Jonathan Marek (1):</p>
<ul>
<li>freedreno/a2xx: ir2: fix lowering of instructions after float lowering</li>
</ul>
<p>Jose Maria Casanova Crespo (1):</p>
<ul>
<li>mesa: recover target_check before get_current_tex_objects</li>
</ul>
<p>Juan A. Suarez Romero (1):</p>
<ul>
<li>bin/get-pick-list.sh: sha1 commits can be smaller than 8 chars</li>
</ul>
<p>Kenneth Graunke (20):</p>
<ul>
<li>gallium/ddebug: Wrap resource_get_param if available</li>
<li>gallium/trace: Wrap resource_get_param if available</li>
<li>gallium/rbug: Wrap resource_get_param if available</li>
<li>gallium/noop: Implement resource_get_param</li>
<li>iris: Replace devinfo-&gt;gen with GEN_GEN</li>
<li>iris: Fix broken aux.possible/sampler_usages bitmask handling</li>
<li>iris: Update fast clear colors on Gen9 with direct immediate writes.</li>
<li>iris: Drop copy format hacks from copy region based transfer path.</li>
<li>iris: Avoid unnecessary resolves on transfer maps</li>
<li>iris: Fix large timeout handling in rel2abs()</li>
<li>isl: Drop UnormPathInColorPipe for buffer surfaces.</li>
<li>isl: Don't set UnormPathInColorPipe for integer surfaces.</li>
<li>util: Add a _mesa_i64roundevenf() helper.</li>
<li>mesa: Fix _mesa_float_to_unorm() on 32-bit systems.</li>
<li>iris: Fix partial fast clear checks to account for miplevel.</li>
<li>iris: Report correct number of planes for planar images</li>
<li>iris: Fix constant buffer sizes for non-UBOs</li>
<li>gallium: Fix util_format_get_depth_only</li>
<li>iris: Initialize ice-&gt;state.prim_mode to an invalid value</li>
<li>intel: Increase Gen11 compute shader scratch IDs to 64.</li>
</ul>
<p>Lepton Wu (1):</p>
<ul>
<li>virgl: Fix pipe_resource leaks under multi-sample.</li>
</ul>
<p>Lionel Landwerlin (9):</p>
<ul>
<li>util/timespec: use unsigned 64 bit integers for nsec values</li>
<li>util: fix compilation on macos</li>
<li>egl: fix platform selection</li>
<li>vulkan/overlay: bounce image back to present layout</li>
<li>radv: store engine name</li>
<li>driconfig: add a new engine name/version parameter</li>
<li>vulkan: add vk_x11_strict_image_count option</li>
<li>util/xmlconfig: fix regexp compile failure check</li>
<li>drirc: include unreal engine version 0 to 23</li>
</ul>
<p>Marek Olšák (23):</p>
<ul>
<li>radeonsi/gfx10: fix the legacy pipeline by storing as_ngg in the shader cache</li>
<li>radeonsi: move some global shader cache flags to per-binary flags</li>
<li>radeonsi/gfx10: fix tessellation for the legacy pipeline</li>
<li>radeonsi/gfx10: fix the PRIMITIVES_GENERATED query if using legacy streamout</li>
<li>radeonsi/gfx10: create the GS copy shader if using legacy streamout</li>
<li>radeonsi/gfx10: add as_ngg variant for VS as ES to select Wave32/64</li>
<li>radeonsi/gfx10: fix InstanceID for legacy VS+GS</li>
<li>radeonsi/gfx10: don't initialize VGT_INSTANCE_STEP_RATE_0</li>
<li>radeonsi/gfx10: always use the legacy pipeline for streamout</li>
<li>radeonsi/gfx10: finish up Navi14, add PCI ID</li>
<li>radeonsi/gfx10: add AMD_DEBUG=nongg</li>
<li>winsys/amdgpu+radeon: process AMD_DEBUG in addition to R600_DEBUG</li>
<li>radeonsi: add PKT3_CONTEXT_REG_RMW</li>
<li>radeonsi/gfx10: remove incorrect ngg/pos_writes_edgeflag variables</li>
<li>radeonsi/gfx10: set PA_CL_VS_OUT_CNTL with CONTEXT_REG_RMW to fix edge flags</li>
<li>radeonsi: consolidate determining VGPR_COMP_CNT for API VS</li>
<li>radeonsi: unbind blend/DSA/rasterizer state correctly in delete functions</li>
<li>radeonsi: fix scratch buffer WAVESIZE setting leading to corruption</li>
<li>radeonsi/gfx10: don't call gfx10_destroy_query with compute-only contexts</li>
<li>radeonsi/gfx10: fix wave occupancy computations</li>
<li>radeonsi: add Navi12 PCI ID</li>
<li>amd: add more PCI IDs for Navi14</li>
<li>ac/addrlib: fix chip identification for Vega10, Arcturus, Raven2, Renoir</li>
</ul>
<p>Mauro Rossi (2):</p>
<ul>
<li>android: mesa: revert "Enable asm unconditionally"</li>
<li>android: anv: libmesa_vulkan_common: add libmesa_util static dependency</li>
</ul>
<p>Paulo Zanoni (2):</p>
<ul>
<li>intel/fs: grab fail_msg from v32 instead of v16 when v32-&gt;run_cs fails</li>
<li>intel/fs: fix SHADER_OPCODE_CLUSTER_BROADCAST for SIMD32</li>
</ul>
<p>Pierre-Eric Pelloux-Prayer (1):</p>
<ul>
<li>glsl: replace 'x + (-x)' with constant 0</li>
</ul>
<p>Rafael Antognolli (1):</p>
<ul>
<li>anv: Only re-emit non-dynamic state that has changed.</li>
</ul>
<p>Rhys Perry (1):</p>
<ul>
<li>radv: always emit a position export in gs copy shaders</li>
</ul>
<p>Samuel Iglesias Gonsálvez (1):</p>
<ul>
<li>intel/nir: do not apply the fsin and fcos trig workarounds for consts</li>
</ul>
<p>Samuel Pitoiset (11):</p>
<ul>
<li>radv: allow to enable VK_AMD_shader_ballot only on GFX8+</li>
<li>radv: add a new debug option called RADV_DEBUG=noshaderballot</li>
<li>radv: force enable VK_AMD_shader_ballot for Wolfenstein Youngblood</li>
<li>ac: fix exclusive scans on GFX8-GFX9</li>
<li>radv/gfx10: don't initialize VGT_INSTANCE_STEP_RATE_0</li>
<li>radv/gfx10: do not use NGG with NAVI14</li>
<li>radv: fix getting the index type size for uint8_t</li>
<li>nir: do not assume that the result of fexp2(a) is always an integral</li>
<li>radv: fix allocating number of user sgprs if streamout is used</li>
<li>radv: fix loading 64-bit GS inputs</li>
<li>radv/gfx10: fix VK_KHR_pipeline_executable_properties with NGG GS</li>
</ul>
<p>Sergii Romantsov (2):</p>
<ul>
<li>intel/dri: finish proper glthread</li>
<li>nir/large_constants: more careful data copying</li>
</ul>
<p>Tapani Pälli (5):</p>
<ul>
<li>util: fix os_create_anonymous_file on android</li>
<li>iris/android: fix build and link with libmesa_intel_perf</li>
<li>egl: reset blob cache set/get functions on terminate</li>
<li>iris: close screen fd on iris_destroy_screen</li>
<li>egl: check for NULL value like eglGetSyncAttribKHR does</li>
</ul>
<p>Thong Thai (1):</p>
<ul>
<li>Revert "radeonsi: don't emit PKT3_CONTEXT_CONTROL on amdgpu"</li>
</ul>
<p>Timur Kristóf (1):</p>
<ul>
<li>st/nine: Properly initialize GLSL types for NIR shaders.</li>
</ul>
<p>Vinson Lee (2):</p>
<ul>
<li>swr: Fix build with llvm-9.0 again.</li>
<li>travis: Fail build if any command in if statement fails.</li>
</ul>
</ul>
</div>
......
......@@ -271,3 +271,5 @@ CHIPSET(0x731F, NAVI10)
CHIPSET(0x7360, NAVI12)
CHIPSET(0x7340, NAVI14)
CHIPSET(0x7341, NAVI14)
CHIPSET(0x7347, NAVI14)
......@@ -42,7 +42,7 @@ pre_args = [
'-D__STDC_FORMAT_MACROS',
'-D__STDC_LIMIT_MACROS',
'-DPACKAGE_VERSION="@0@"'.format(meson.project_version()),
'-DPACKAGE_BUGREPORT="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa"',
'-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/issues"',
]
with_vulkan_icd_dir = get_option('vulkan-icd-dir')
......@@ -1309,6 +1309,10 @@ endif
dep_glvnd = null_dep
if with_glvnd
dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
# GLVND until commit 0dfaea2bcb7cdcc785f9 ("Add pkg-config files for EGL, GL,
# GLES, and GLX.") was missing its pkg-config files, forcing every vendor to
# provide them and the distro maintainers to resolve the conflict.
glvnd_missing_pc_files = dep_glvnd.version().version_compare('< 1.2.0')
pre_args += '-DUSE_LIBGLVND=1'
endif
......
......@@ -77,25 +77,22 @@
#define AMDGPU_ICELAND_RANGE 0x01, 0x14
#define AMDGPU_TONGA_RANGE 0x14, 0x28
#define AMDGPU_FIJI_RANGE 0x3C, 0x50
#define AMDGPU_POLARIS10_RANGE 0x50, 0x5A
#define AMDGPU_POLARIS11_RANGE 0x5A, 0x64
#define AMDGPU_POLARIS12_RANGE 0x64, 0x6E
#define AMDGPU_VEGAM_RANGE 0x6E, 0xFF
#define AMDGPU_CARRIZO_RANGE 0x01, 0x21
#define AMDGPU_BRISTOL_RANGE 0x10, 0x21
#define AMDGPU_STONEY_RANGE 0x61, 0xFF
#define AMDGPU_VEGA10_RANGE 0x01, 0x14
#define AMDGPU_VEGA12_RANGE 0x14, 0x28
#define AMDGPU_VEGA20_RANGE 0x28, 0xFF
#define AMDGPU_VEGA20_RANGE 0x28, 0x32
#define AMDGPU_ARCTURUS_RANGE 0x32, 0xFF
#define AMDGPU_RAVEN_RANGE 0x01, 0x81
#define AMDGPU_RAVEN2_RANGE 0x81, 0xFF
#define AMDGPU_RENOIR_RANGE 0x01, 0x91
#define AMDGPU_ARCTURUS_RANGE 0x32, 0xFF
#define AMDGPU_RAVEN2_RANGE 0x81, 0x91
#define AMDGPU_RENOIR_RANGE 0x91, 0xFF
#define AMDGPU_NAVI10_RANGE 0x01, 0x0A
#define AMDGPU_NAVI12_RANGE 0x0A, 0x14
......@@ -131,7 +128,6 @@
#define ASICREV_IS_VEGAM_P(r) ASICREV_IS(r, VEGAM)
#define ASICREV_IS_CARRIZO(r) ASICREV_IS(r, CARRIZO)
#define ASICREV_IS_CARRIZO_BRISTOL(r) ASICREV_IS(r, BRISTOL)
#define ASICREV_IS_STONEY(r) ASICREV_IS(r, STONEY)
#define ASICREV_IS_VEGA10_M(r) ASICREV_IS(r, VEGA10)
......@@ -139,13 +135,12 @@
#define ASICREV_IS_VEGA12_P(r) ASICREV_IS(r, VEGA12)
#define ASICREV_IS_VEGA12_p(r) ASICREV_IS(r, VEGA12)
#define ASICREV_IS_VEGA20_P(r) ASICREV_IS(r, VEGA20)
#define ASICREV_IS_ARCTURUS(r) ASICREV_IS(r, ARCTURUS)
#define ASICREV_IS_RAVEN(r) ASICREV_IS(r, RAVEN)
#define ASICREV_IS_RAVEN2(r) ASICREV_IS(r, RAVEN2)
#define ASICREV_IS_RENOIR(r) ASICREV_IS(r, RENOIR)
#define ASICREV_IS_ARCTURUS(r) ASICREV_IS(r, ARCTURUS)
#define ASICREV_IS_NAVI10_P(r) ASICREV_IS(r, NAVI10)
#define ASICREV_IS_NAVI12(r) ASICREV_IS(r, NAVI12)
#define ASICREV_IS_NAVI14(r) ASICREV_IS(r, NAVI14)
......
......@@ -575,6 +575,14 @@ radv_handle_per_app_options(struct radv_instance *instance,
*/
instance->perftest_flags |= RADV_PERFTEST_SHADER_BALLOT;
}
} else if (!strcmp(name, "Fledge")) {
/*
* Zero VRAM for "The Surge 2"
*
* This avoid a hang when when rendering any level. Likely
* uninitialized data in an indirect draw.
*/
instance->debug_flags |= RADV_DEBUG_ZERO_VRAM;
}
}
......
......@@ -1703,6 +1703,18 @@ load_tes_input(struct ac_shader_abi *abi,
return result;
}
static LLVMValueRef
radv_emit_fetch_64bit(struct radv_shader_context *ctx,
LLVMTypeRef type, LLVMValueRef a, LLVMValueRef b)
{
LLVMValueRef values[2] = {
ac_to_integer(&ctx->ac, a),
ac_to_integer(&ctx->ac, b),
};
LLVMValueRef result = ac_build_gather_values(&ctx->ac, values, 2);
return LLVMBuildBitCast(ctx->ac.builder, result, type, "");
}
static LLVMValueRef
load_gs_input(struct ac_shader_abi *abi,
unsigned location,
......@@ -1731,6 +1743,14 @@ load_gs_input(struct ac_shader_abi *abi,
dw_addr = LLVMBuildAdd(ctx->ac.builder, dw_addr,
LLVMConstInt(ctx->ac.i32, param * 4 + i + const_index, 0), "");
value[i] = ac_lds_load(&ctx->ac, dw_addr);
if (ac_get_type_size(type) == 8) {
dw_addr = LLVMBuildAdd(ctx->ac.builder, dw_addr,
LLVMConstInt(ctx->ac.i32, param * 4 + i + const_index + 1, 0), "");
LLVMValueRef tmp = ac_lds_load(&ctx->ac, dw_addr);
value[i] = radv_emit_fetch_64bit(ctx, type, value[i], tmp);
}
} else {
LLVMValueRef soffset =
LLVMConstInt(ctx->ac.i32,
......@@ -1742,6 +1762,21 @@ load_gs_input(struct ac_shader_abi *abi,
ctx->ac.i32_0,
vtx_offset, soffset,
0, ac_glc, true, false);
if (ac_get_type_size(type) == 8) {
soffset = LLVMConstInt(ctx->ac.i32,
(param * 4 + i + const_index + 1) * 256,
false);
LLVMValueRef tmp =
ac_build_buffer_load(&ctx->ac,
ctx->esgs_ring, 1,
ctx->ac.i32_0,
vtx_offset, soffset,
0, ac_glc, true, false);
value[i] = radv_emit_fetch_64bit(ctx, type, value[i], tmp);
}
}
if (ac_get_type_size(type) == 2) {
......
......@@ -4817,8 +4817,15 @@ static uint32_t radv_get_executable_count(const struct radv_pipeline *pipeline)
{
uint32_t ret = 0;
for (int i = 0; i < MESA_SHADER_STAGES; ++i) {
if (pipeline->shaders[i])
ret += i == MESA_SHADER_GEOMETRY ? 2u : 1u;
if (!pipeline->shaders[i])
continue;
if (i == MESA_SHADER_GEOMETRY &&
!radv_pipeline_has_ngg(pipeline)) {
ret += 2u;
} else {
ret += 1u;
}
}
return ret;
......@@ -4837,7 +4844,8 @@ radv_get_shader_from_executable_index(const struct radv_pipeline *pipeline, int
--index;
if (i == MESA_SHADER_GEOMETRY) {
if (i == MESA_SHADER_GEOMETRY &&
!radv_pipeline_has_ngg(pipeline)) {
if (!index) {
*stage = i;
return pipeline->gs_copy_shader;
......@@ -4928,7 +4936,8 @@ VkResult radv_GetPipelineExecutablePropertiesKHR(
desc_copy(pProperties[executable_idx].description, description);
++executable_idx;
if (i == MESA_SHADER_GEOMETRY) {
if (i == MESA_SHADER_GEOMETRY &&
!radv_pipeline_has_ngg(pipeline)) {
assert(pipeline->gs_copy_shader);
if (executable_idx >= count)
break;
......
......@@ -1524,10 +1524,19 @@ late_optimizations = [
# fadd(ffma(v1.z, v2.z, ffma(v1.y, v2.y, fmul(v1.x, v2.x))), v1.w)
#
# Reassociate the last addition into the first multiplication.
#
# Some shaders do not use 'invariant' in vertex and (possibly) geometry
# shader stages on some outputs that are intended to be invariant. For
# various reasons, this optimization may not be fully applied in all
# shaders used for different rendering passes of the same geometry. This
# can result in Z-fighting artifacts (at best). For now, disable this
# optimization in these stages. See bugzilla #111490. In tessellation
# stages applications seem to use 'precise' when necessary, so allow the
# optimization in those stages.
(('~fadd', ('ffma(is_used_once)', a, b, ('ffma', c, d, ('fmul', 'e(is_not_const_and_not_fsign)', 'f(is_not_const_and_not_fsign)'))), 'g(is_not_const)'),
('ffma', a, b, ('ffma', c, d, ('ffma', e, 'f', 'g'))), '!options->intel_vec4'),
(('~fadd', ('ffma(is_used_once)', a, b, ('fmul', 'e(is_not_const_and_not_fsign)', 'f(is_not_const_and_not_fsign)') ), 'g(is_not_const)'),
('ffma', a, b, ('ffma', e, 'f', 'g') ), '!options->intel_vec4'),
('ffma', a, b, ('ffma', c, d, ('ffma', e, 'f', 'g'))), '(info->stage != MESA_SHADER_VERTEX && info->stage != MESA_SHADER_GEOMETRY) && !options->intel_vec4'),
(('~fadd', ('ffma(is_used_once)', a, b, ('fmul', 'c(is_not_const_and_not_fsign)', 'd(is_not_const_and_not_fsign)') ), 'e(is_not_const)'),
('ffma', a, b, ('ffma', c, d, e)), '(info->stage != MESA_SHADER_VERTEX && info->stage != MESA_SHADER_GEOMETRY) && !options->intel_vec4'),
]
print(nir_algebraic.AlgebraicPass("nir_opt_algebraic", optimizations).render())
......
......@@ -103,10 +103,15 @@ repair_ssa_def(nir_ssa_def *def, void *void_state)
nir_foreach_use_safe(src, def) {
nir_block *src_block = get_src_block(src);
if (nir_block_is_unreachable(src_block) ||
!nir_block_dominates(def->parent_instr->block, src_block)) {
if (src_block == def->parent_instr->block) {
assert(nir_phi_builder_value_get_block_def(val, src_block) == def);
continue;
}
nir_ssa_def *block_def =
nir_phi_builder_value_get_block_def(val, src_block);
if (block_def == def)
continue;
/* If def was a deref and the use we're looking at is a deref that
* isn't a cast, we need to wrap it in a cast so we don't loose any
......@@ -132,19 +137,23 @@ repair_ssa_def(nir_ssa_def *def, void *void_state)
block_def = &cast->dest.ssa;
}
nir_instr_rewrite_src(src->parent_instr, src,
nir_src_for_ssa(block_def));
}
nir_instr_rewrite_src(src->parent_instr, src, nir_src_for_ssa(block_def));
}
nir_foreach_if_use_safe(src, def) {
nir_block *block_before_if =
nir_cf_node_as_block(nir_cf_node_prev(&src->parent_if->cf_node));
if (nir_block_is_unreachable(block_before_if) ||
!nir_block_dominates(def->parent_instr->block, block_before_if)) {
nir_if_rewrite_condition(src->parent_if, nir_src_for_ssa(
nir_phi_builder_value_get_block_def(val, block_before_if)));
if (block_before_if == def->parent_instr->block) {
assert(nir_phi_builder_value_get_block_def(val, block_before_if) == def);
continue;
}
nir_ssa_def *block_def =
nir_phi_builder_value_get_block_def(val, block_before_if);
if (block_def == def)
continue;
nir_if_rewrite_condition(src->parent_if, nir_src_for_ssa(block_def));
}
return true;
......
......@@ -2112,6 +2112,10 @@ eglGetSyncAttrib(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *valu
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSync *s = _eglLookupSync(sync, disp);
_EGL_FUNC_START(disp, EGL_OBJECT_SYNC_KHR, s, EGL_FALSE);
if (!value)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
return _eglGetSyncAttribCommon(disp, s, attribute, value);
}
......
......@@ -173,17 +173,24 @@ libegl = shared_library(
version : egl_lib_version,
)
if not with_glvnd
# If using glvnd the pkg-config header should not point to EGL_mesa, it should
# point to EGL. glvnd is only available on unix like platforms so adding -l
# should be safe here
if with_glvnd and glvnd_missing_pc_files
_egl = '-L${libdir} -lEGL'
else
_egl = libegl
endif
pkg.generate(
name : 'egl',
description : 'Mesa EGL Library',
version : meson.project_version(),
libraries : libegl,
libraries : _egl,
libraries_private: gl_priv_libs,
requires_private : gl_priv_reqs,
extra_cflags : gl_pkgconfig_c_flags,
)
endif
if with_tests and prog_nm.found()
if with_glvnd
......