Merge branch 'main' into testing

This commit is contained in:
Kyle Gospodnetich 2024-02-04 23:13:35 -08:00
commit dcc2e34169
34 changed files with 313 additions and 3137 deletions

View File

@ -90,7 +90,9 @@ RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo
/tmp/akmods-rpms/kmods/*nct6687*.rpm \
/tmp/akmods-rpms/kmods/*evdi*.rpm \
/tmp/akmods-rpms/kmods/*zenergy*.rpm \
/tmp/akmods-rpms/kmods/*ayaneo-platform*.rpm \
/tmp/akmods-rpms/kmods/*ayn-platform*.rpm \
/tmp/akmods-rpms/kmods/*bmi160*.rpm \
/tmp/akmods-rpms/kmods/*bmi260*.rpm \
/tmp/akmods-rpms/kmods/*bmi323*.rpm \
/tmp/akmods-rpms/kmods/*rtl8814au*.rpm \
@ -105,6 +107,11 @@ RUN rpm-ostree override replace \
|| true && \
rpm-ostree override replace \
--experimental \
--from repo=updates \
alsa-libs \
|| true && \
rpm-ostree override replace \
--experimental \
--from repo=updates \
gnutls \
|| true && \
@ -589,7 +596,6 @@ RUN rpm-ostree install \
jupiter-hw-support-btrfs \
galileo-mura \
powerbuttond \
HandyGCCS \
hhd \
vpower \
ds-inhibit \
@ -706,7 +712,6 @@ RUN /tmp/image-info.sh && \
systemctl --global disable sdgyrodsu.service && \
systemctl disable input-remapper.service && \
systemctl disable ublue-update.timer && \
systemctl disable handycon.service && \
systemctl disable jupiter-fan-control.service && \
systemctl disable vpower.service && \
systemctl disable jupiter-biosupdate.service && \

View File

@ -93,7 +93,7 @@ rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:sta
### Steam Deck/Home Theater PCs (HTPCs)
> [!IMPORTANT]
Devices that are NOT the Steam Deck can still use the bazzite-deck images, but must use an AMD/Intel GPU.
Devices that are NOT the Steam Deck can still use the `bazzite-deck` images, but must use a modern AMD GPU. Intel Arc GPUs also have been confirmed to work.
Variant designed for usage as an alternative to SteamOS on the Steam Deck, and for a console-like experience on HTPCs, available as `bazzite-deck`:
@ -103,7 +103,7 @@ Variant designed for usage as an alternative to SteamOS on the Steam Deck, and f
- **Able to be booted even if the drive is full.**
- **Support for every language supported by upstream Fedora.**
- **Uses Wayland on the desktop with [support for Steam input](https://github.com/Supreeeme/extest).**
- Includes [HHD](https://github.com/hhd-dev/hhd) and [HandyGCCS](https://github.com/ShadowBlip/HandyGCCS) for expanded input support on non-Valve handhelds.
- Includes [HHD](https://github.com/hhd-dev/hhd) for expanded input support on non-Valve handhelds.
- Features ported versions of most SteamOS packages, including drivers, firmware updaters, and fan controllers [from the evlaV repository](https://gitlab.com/evlaV).
- Patched Mesa for proper framerate control from Gamescope.
- Comes with patches from [SteamOS BTRFS](https://gitlab.com/popsulfr/steamos-btrfs) for full BTRFS support for the SD card by default.

View File

@ -0,0 +1,57 @@
From adaa5e064a6149e1f8122cc55589f60b6f58f7ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Gu=C3=A9rin?= <libcg@protonmail.com>
Date: Tue, 19 Dec 2023 16:34:17 -0800
Subject: [PATCH 1/2] drm: fix NPE while in headless mode
caused by e810317
---
src/drm.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/drm.cpp b/src/drm.cpp
index 59516c7..8759321 100644
--- a/src/drm.cpp
+++ b/src/drm.cpp
@@ -3337,6 +3337,7 @@ void drm_get_native_colorimetry( struct drm_t *drm,
*displayEOTF = EOTF_Gamma22;
*outputEncodingColorimetry = displaycolorimetry_709;
*outputEncodingEOTF = EOTF_Gamma22;
+ return;
}
*displayColorimetry = drm->connector->metadata.colorimetry;
--
2.42.0
From 08c56c656539c88b23d243869b00cf3dd33bcb1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Gu=C3=A9rin?= <libcg@protonmail.com>
Date: Wed, 20 Dec 2023 17:18:32 -0800
Subject: [PATCH 2/2] drm: fix other headless NPE
fixes a980d912
---
src/drm.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/drm.cpp b/src/drm.cpp
index 8759321..d632128 100644
--- a/src/drm.cpp
+++ b/src/drm.cpp
@@ -2584,10 +2584,10 @@ int drm_prepare( struct drm_t *drm, bool async, const struct FrameInfo_t *frameI
assert( drm->req == nullptr );
drm->req = drmModeAtomicAlloc();
- bool bConnectorSupportsHDR = drm->connector->metadata.supportsST2084;
- bool bConnectorHDR = g_bOutputHDREnabled && bConnectorSupportsHDR;
-
if (drm->connector != nullptr) {
+ bool bConnectorSupportsHDR = drm->connector->metadata.supportsST2084;
+ bool bConnectorHDR = g_bOutputHDREnabled && bConnectorSupportsHDR;
+
if (drm->connector->has_colorspace) {
drm->connector->pending.colorspace = ( bConnectorHDR ) ? DRM_MODE_COLORIMETRY_BT2020_RGB : DRM_MODE_COLORIMETRY_DEFAULT;
}
--
2.42.0

View File

@ -11,6 +11,7 @@ URL: https://github.com/ValveSoftware/gamescope
# Create stb.pc to satisfy dependency('stb')
Source1: stb.pc
Source2: chimeraos.patch
Source3: crashfix.patch
BuildRequires: meson >= 0.54.0
BuildRequires: ninja-build
@ -74,6 +75,7 @@ git submodule update --init --recursive
mkdir -p pkgconfig
cp %{SOURCE1} pkgconfig/stb.pc
patch -Np1 < %{SOURCE2}
patch -Np1 < %{SOURCE3}
%build
cd gamescope

View File

@ -1,10 +0,0 @@
diff --git a/bin/mangoplot.py b/bin/mangoplot.py
index 7d82b3a..b974aa7 100755
--- a/bin/mangoplot.py
+++ b/bin/mangoplot.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
r"""
Script to plot all the MangoHud benchmarks contained in a given folder.

View File

@ -1,298 +0,0 @@
## START: Set by rpmautospec
## (rpmautospec version 0.3.8)
## RPMAUTOSPEC: autorelease
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 1;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
## START: Set by rpmautospec
## (rpmautospec version 0.3.5)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 12;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
%global appname MangoHud
%global imgui_ver 1.81
%global imgui_wrap_ver 1
%global tarball_version %%(echo %{version} | tr '~' '-')
# Tests requires bundled stuff. Disable for now.
%bcond_with tests
Name: mangohud
Version: 0.7.0
Release: 100.bazzite.{{{ git_dir_version }}}
Summary: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load
License: MIT
URL: https://github.com/flightlessmango/MangoHud
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
Source1: https://github.com/ocornut/imgui/archive/v%{imgui_ver}/imgui-%{imgui_ver}.tar.gz
Source2: https://wrapdb.mesonbuild.com/v1/projects/imgui/%{imgui_ver}/%{imgui_wrap_ver}/get_zip#/imgui-%{imgui_ver}-%{imgui_wrap_ver}-wrap.zip
Patch0: fedora.patch
BuildRequires: appstream
BuildRequires: dbus-devel
BuildRequires: gcc-c++
BuildRequires: git-core
BuildRequires: glew-devel
BuildRequires: glfw-devel
BuildRequires: glslang-devel
BuildRequires: libappstream-glib
BuildRequires: libstdc++-static
BuildRequires: mesa-libGL-devel
BuildRequires: meson >= 0.60
BuildRequires: python3-mako
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dri)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(glfw3)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(spdlog)
BuildRequires: pkgconfig(nlohmann_json)
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(x11)
BuildRequires: cmake(VulkanHeaders)
%if %{with tests}
BuildRequires: libcmocka-devel
%endif
Requires: hicolor-icon-theme
Requires: vulkan-loader%{?_isa}
Recommends: (mangohud(x86-32) if glibc(x86-32))
Suggests: goverlay
Provides: bundled(imgui) = %{imgui_ver}
%global _description %{expand:
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and
more.}
%description %{_description}
%prep
%autosetup -n %{appname}-%{version} -p1
%setup -qn %{appname}-%{version} -DTa1
%setup -qn %{appname}-%{version} -DTa2
mkdir subprojects/imgui
mv imgui-%{imgui_ver} subprojects/
%build
%meson \
--wrap-mode=forcefallback \
-Dinclude_doc=true \
-Dwith_wayland=enabled \
-Dwith_xnvctrl=disabled \
-Dmangoapp=true \
-Dmangoapp_layer=true \
-Dmangohudctl=true \
%if %{with tests}
-Dtests=enabled \
%else
-Dtests=disabled \
%endif
%{nil}
%meson_build
%install
%meson_install
%check
# https://github.com/flightlessmango/MangoHud/issues/812
# ? tag-invalid : stock icon is not valid [io.github.flightlessmango.mangohud]
%dnl appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml
%if %{with tests}
%meson_test
%endif
%files
%license LICENSE
%doc README.md
%{_bindir}/%{name}*
%{_bindir}/mangoapp
%{_bindir}/mangoplot
%{_datadir}/icons/hicolor/scalable/*/*.svg
%{_datadir}/vulkan/implicit_layer.d/*Mango*.json
%{_docdir}/%{name}/*
%{_libdir}/%{name}/*
%{_mandir}/man1/%{name}.1*
%{_mandir}/man1/mangoapp.1*
%{_metainfodir}/*.metainfo.xml
%{_libdir}/%{name}/libMangoApp.so
%changelog
* Mon Oct 02 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.7.0-6
- build: Fix description about 'mangoplot'
* Mon Oct 02 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.7.0-5
- build: mangohud-mangoplot as Suggests
* Thu Sep 28 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.7.0-4
- build: Add missed deps for mangoplot
* Thu Sep 28 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.7.0-3
- build: Package mangoplot as separate sub-package
* Thu Sep 28 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.7.0-2
- build: Upload sources
* Thu Sep 28 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.7.0-1
- build: Update to 0.7.0
* Sun Sep 10 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-11
- build: Backport upstream patch
* Sun Sep 10 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-10
- test: Skip for s390x arch
* Sun Sep 10 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-9
- build: Drop BR: pkgconfig(vulkan)
* Sun Sep 10 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-8
- test: Fix and enable tests
* Sun Sep 10 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-7
- style: Minor Spec file update
* Sun Sep 10 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-6
- build: Bundle vulkan-headers to fix FTBFS
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.9.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 11 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-4
- build: mangohud relies on old Vulkan-headers < 1.3.241
* Sat Jul 08 2023 Vitaly Zaitsev <vitaly@easycoding.org> - 0.6.9.1-3
- Rebuilt due to spdlog 1.12 update.
* Wed Jun 28 2023 Vitaly Zaitsev <vitaly@easycoding.org> - 0.6.9.1-2
- Rebuilt due to fmt 10 update.
* Wed Apr 19 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9.1-1
- build: Update to 0.6.9-1
* Fri Apr 14 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.9-1
- build: Update to 0.6.9
* Tue Mar 14 2023 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.8-4
- build: Fix FTBFS 38
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Nov 03 2022 Vitaly Zaitsev <vitaly@easycoding.org> - 0.6.8-2
- Rebuilt due to spdlog update.
* Tue Aug 02 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.8-1
- chore(update): 0.6.8
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.7.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jul 19 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.6.7.1-3
- Rebuild for fmt-9
* Fri May 13 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.7.1-2
- fix: Upload sources
* Fri May 13 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.7.1-1
- chore(update): 0.6.7-1
* Wed May 04 2022 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.7-1
- chore(update): 0.6.7
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Oct 18 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.6-1
- chore(update): 0.6.6
* Thu Oct 07 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.5-3
- build: Fix multilib dep | rh#1830718
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jul 08 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.5-1
- build(update): 0.6.5
* Thu Jun 24 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.4-1
- build(update): 0.6.4
* Sat Jun 12 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.3-1
- build(update): 0.6.3
* Fri Jun 11 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.2-1
- build(update): 0.6.2
* Wed Jan 27 2021 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.1-3
- build: Install 32-bit version automagically if multilib packages already
installed on end user machine
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Nov 29 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.1-1
- build(update): 0.6.1
* Sun Nov 29 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.0-2
- fix: version in HUD | GH-411
* Sat Nov 28 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.6.0-1
- build(update): 0.6.0
* Sun Aug 16 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.5.1-1
- Update to 0.5.1
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat Jun 13 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.4.1-2
- Add patch which fix F33 build | GH-213
* Thu Jun 11 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.4.1-1
- Update to 0.4.1
- Disable LTO
* Sat May 02 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.3.5-1
- Update to 0.3.5
- Remove ExclusiveArch. Now compiles on all arches, see GitHub#88.
* Thu Mar 26 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.3.1-2
- Add GUI fron-end 'goverlay' as very weak dep
* Wed Mar 18 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.3.1-1
- Update to 0.3.1
* Sun Mar 15 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.3.0-1
- Update to 0.3.0
* Fri Feb 14 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 0.2.0-11
- Initial package
- Thanks for help with packaging to:
gasinvein <gasinvein@gmail.com>
Vitaly Zaitsev <vitaly@easycoding.org>

View File

@ -1,204 +0,0 @@
diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index 561f3cc02e0..ebc54a900e3 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -12526,7 +12526,8 @@ select_rt_prolog(Program* program, ac_shader_config* config,
*/
PhysReg out_uniform_shader_addr = get_arg_reg(out_args, out_args->rt.uniform_shader_addr);
PhysReg out_launch_size_x = get_arg_reg(out_args, out_args->rt.launch_size);
- PhysReg out_launch_size_z = out_launch_size_x.advance(8);
+ PhysReg out_launch_size_y = out_launch_size_x.advance(4);
+ PhysReg out_launch_size_z = out_launch_size_y.advance(4);
PhysReg out_launch_ids[3];
for (unsigned i = 0; i < 3; i++)
out_launch_ids[i] = get_arg_reg(out_args, out_args->rt.launch_id).advance(i * 4);
@@ -12534,9 +12535,13 @@ select_rt_prolog(Program* program, ac_shader_config* config,
PhysReg out_record_ptr = get_arg_reg(out_args, out_args->rt.shader_record);
/* Temporaries: */
- num_sgprs = align(num_sgprs, 2) + 4;
- PhysReg tmp_raygen_sbt = PhysReg{num_sgprs - 4};
- PhysReg tmp_ring_offsets = PhysReg{num_sgprs - 2};
+ num_sgprs = align(num_sgprs, 2);
+ PhysReg tmp_raygen_sbt = PhysReg{num_sgprs};
+ num_sgprs += 2;
+ PhysReg tmp_ring_offsets = PhysReg{num_sgprs};
+ num_sgprs += 2;
+
+ PhysReg tmp_invocation_idx = PhysReg{256 + num_vgprs++};
/* Confirm some assumptions about register aliasing */
assert(in_ring_offsets == out_uniform_shader_addr);
@@ -12610,6 +12615,36 @@ select_rt_prolog(Program* program, ac_shader_config* config,
bld.vop1(aco_opcode::v_mov_b32, Definition(out_record_ptr.advance(4), v1),
Operand(tmp_raygen_sbt.advance(4), s1));
+ /* For 1D dispatches converted into 2D ones, we need to fix up the launch IDs.
+ * Calculating the 1D launch ID is: id = local_invocation_index + (wg_id.x * wg_size).
+ * in_wg_id_x now holds wg_id.x * wg_size.
+ */
+ bld.sop2(aco_opcode::s_lshl_b32, Definition(in_wg_id_x, s1), Definition(scc, s1),
+ Operand(in_wg_id_x, s1), Operand::c32(program->workgroup_size == 32 ? 5 : 6));
+
+ /* Calculate and add local_invocation_index */
+ bld.vop3(aco_opcode::v_mbcnt_lo_u32_b32, Definition(tmp_invocation_idx, v1), Operand::c32(-1u),
+ Operand(in_wg_id_x, s1));
+ if (program->wave_size == 64) {
+ if (program->gfx_level <= GFX7)
+ bld.vop2(aco_opcode::v_mbcnt_hi_u32_b32, Definition(tmp_invocation_idx, v1),
+ Operand::c32(-1u), Operand(tmp_invocation_idx, v1));
+ else
+ bld.vop3(aco_opcode::v_mbcnt_hi_u32_b32_e64, Definition(tmp_invocation_idx, v1),
+ Operand::c32(-1u), Operand(tmp_invocation_idx, v1));
+ }
+
+ /* Make fixup operations a no-op if this is not a converted 2D dispatch. */
+ bld.sopc(aco_opcode::s_cmp_lg_u32, Definition(scc, s1),
+ Operand::c32(ACO_RT_CONVERTED_2D_LAUNCH_SIZE), Operand(out_launch_size_y, s1));
+ bld.sop2(Builder::s_cselect, Definition(vcc, bld.lm),
+ Operand::c32_or_c64(-1u, program->wave_size == 64),
+ Operand::c32_or_c64(0, program->wave_size == 64), Operand(scc, s1));
+ bld.vop2(aco_opcode::v_cndmask_b32, Definition(out_launch_ids[0], v1),
+ Operand(tmp_invocation_idx, v1), Operand(out_launch_ids[0], v1), Operand(vcc, bld.lm));
+ bld.vop2(aco_opcode::v_cndmask_b32, Definition(out_launch_ids[1], v1), Operand::zero(),
+ Operand(out_launch_ids[1], v1), Operand(vcc, bld.lm));
+
/* jump to raygen */
bld.sop1(aco_opcode::s_setpc_b64, Operand(out_uniform_shader_addr, s2));
diff --git a/src/amd/compiler/aco_interface.h b/src/amd/compiler/aco_interface.h
index 8f35e18b5b0..9d2c1dbb2af 100644
--- a/src/amd/compiler/aco_interface.h
+++ b/src/amd/compiler/aco_interface.h
@@ -32,6 +32,9 @@
extern "C" {
#endif
+/* Special launch size to indicate this dispatch is a 1D dispatch converted into a 2D one */
+#define ACO_RT_CONVERTED_2D_LAUNCH_SIZE -1u
+
typedef struct nir_shader nir_shader;
struct ac_shader_config;
struct aco_shader_info;
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index cdede679552..c7dd4b216d4 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -42,6 +42,8 @@
#include "ac_debug.h"
#include "ac_shader_args.h"
+#include "aco_interface.h"
+
#include "util/fast_idiv_by_const.h"
enum {
@@ -10003,7 +10005,26 @@ enum radv_rt_mode {
};
static void
-radv_trace_rays(struct radv_cmd_buffer *cmd_buffer, const VkTraceRaysIndirectCommand2KHR *tables, uint64_t indirect_va,
+radv_upload_trace_rays_params(struct radv_cmd_buffer *cmd_buffer, VkTraceRaysIndirectCommand2KHR *tables,
+ enum radv_rt_mode mode, uint64_t *launch_size_va, uint64_t *sbt_va)
+{
+ uint32_t upload_size = mode == radv_rt_mode_direct ? sizeof(VkTraceRaysIndirectCommand2KHR)
+ : offsetof(VkTraceRaysIndirectCommand2KHR, width);
+
+ uint32_t offset;
+ if (!radv_cmd_buffer_upload_data(cmd_buffer, upload_size, tables, &offset))
+ return;
+
+ uint64_t upload_va = radv_buffer_get_va(cmd_buffer->upload.upload_bo) + offset;
+
+ if (mode == radv_rt_mode_direct)
+ *launch_size_va = upload_va + offsetof(VkTraceRaysIndirectCommand2KHR, width);
+ if (sbt_va)
+ *sbt_va = upload_va;
+}
+
+static void
+radv_trace_rays(struct radv_cmd_buffer *cmd_buffer, VkTraceRaysIndirectCommand2KHR *tables, uint64_t indirect_va,
enum radv_rt_mode mode)
{
if (cmd_buffer->device->instance->debug_flags & RADV_DEBUG_NO_RT)
@@ -10024,34 +10045,43 @@ radv_trace_rays(struct radv_cmd_buffer *cmd_buffer, const VkTraceRaysIndirectCom
cmd_buffer->compute_scratch_size_per_wave_needed =
MAX2(cmd_buffer->compute_scratch_size_per_wave_needed, scratch_bytes_per_wave);
+ /* Since the workgroup size is 8x4 (or 8x8), 1D dispatches can only fill 8 threads per wave at most. To increase
+ * occupancy, it's beneficial to convert to a 2D dispatch in these cases. */
+ if (tables && tables->height == 1 && tables->width >= cmd_buffer->state.rt_prolog->info.cs.block_size[0])
+ tables->height = ACO_RT_CONVERTED_2D_LAUNCH_SIZE;
+
struct radv_dispatch_info info = {0};
info.unaligned = true;
- uint64_t launch_size_va;
- uint64_t sbt_va;
+ uint64_t launch_size_va = 0;
+ uint64_t sbt_va = 0;
if (mode != radv_rt_mode_indirect2) {
- uint32_t upload_size = mode == radv_rt_mode_direct ? sizeof(VkTraceRaysIndirectCommand2KHR)
- : offsetof(VkTraceRaysIndirectCommand2KHR, width);
-
- uint32_t offset;
- if (!radv_cmd_buffer_upload_data(cmd_buffer, upload_size, tables, &offset))
- return;
-
- uint64_t upload_va = radv_buffer_get_va(cmd_buffer->upload.upload_bo) + offset;
-
- launch_size_va =
- (mode == radv_rt_mode_direct) ? upload_va + offsetof(VkTraceRaysIndirectCommand2KHR, width) : indirect_va;
- sbt_va = upload_va;
+ launch_size_va = indirect_va;
+ radv_upload_trace_rays_params(cmd_buffer, tables, mode, &launch_size_va, &sbt_va);
} else {
launch_size_va = indirect_va + offsetof(VkTraceRaysIndirectCommand2KHR, width);
sbt_va = indirect_va;
}
+ uint32_t remaining_ray_count = 0;
+
if (mode == radv_rt_mode_direct) {
info.blocks[0] = tables->width;
info.blocks[1] = tables->height;
info.blocks[2] = tables->depth;
+
+ if (tables->height == ACO_RT_CONVERTED_2D_LAUNCH_SIZE) {
+ /* We need the ray count for the 2D dispatch to be a multiple of the y block size for the division to work, and
+ * a multiple of the x block size because the invocation offset must be a multiple of the block size when
+ * dispatching the remaining rays. Fortunately, the x block size is itself a multiple of the y block size, so
+ * we only need to ensure that the ray count is a multiple of the x block size. */
+ remaining_ray_count = tables->width % rt_prolog->info.cs.block_size[0];
+
+ uint32_t ray_count = tables->width - remaining_ray_count;
+ info.blocks[0] = ray_count / rt_prolog->info.cs.block_size[1];
+ info.blocks[1] = rt_prolog->info.cs.block_size[1];
+ }
} else
info.va = launch_size_va;
@@ -10085,6 +10115,22 @@ radv_trace_rays(struct radv_cmd_buffer *cmd_buffer, const VkTraceRaysIndirectCom
assert(cmd_buffer->cs->cdw <= cdw_max);
radv_dispatch(cmd_buffer, &info, pipeline, rt_prolog, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
+
+ if (remaining_ray_count) {
+ info.blocks[0] = remaining_ray_count;
+ info.blocks[1] = 1;
+ info.offsets[0] = tables->width - remaining_ray_count;
+
+ /* Reset the ray launch size so the prolog doesn't think this is a converted dispatch */
+ tables->height = 1;
+ radv_upload_trace_rays_params(cmd_buffer, tables, mode, &launch_size_va, NULL);
+ if (size_loc->sgpr_idx != -1) {
+ radv_emit_shader_pointer(cmd_buffer->device, cmd_buffer->cs, base_reg + size_loc->sgpr_idx * 4, launch_size_va,
+ true);
+ }
+
+ radv_dispatch(cmd_buffer, &info, pipeline, rt_prolog, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
+ }
}
VKAPI_ATTR void VKAPI_CALL

View File

@ -1,117 +0,0 @@
Subject: RE: Question about Mesa MLAA license
From: Jorge Jimenez <iryoku@gmail.com>
Date: 01/08/2013 12:50 PM
To: Tom Callaway <tcallawa@redhat.com>
CC: "jorge@iryoku.com" <jorge@iryoku.com>
Yes to both questions.
Thanks,
Jorge
From: Tom Callaway <tcallawa@redhat.com>
Sent: January 8, 2013 6:49 PM
To: Jorge Jimenez <iryoku@gmail.com>
CC: jorge@iryoku.com
Subject: Re: Question about Mesa MLAA license
On 01/08/2013 12:39 PM, Jorge Jimenez wrote:
> Hi Tom,
>
> What we meant with that is that we made an exception for clause 2.
> Instead of clause 2, in the case of the Mesa project, you have to name
> the technique Jimenez's MLAA in the config options of Mesa. We did that
> just to allow them to solve license issues. This exception should be for
> the Mesa project, and any project using Mesa, like Fedora.
>
> We want to widespread usage of our MLAA, so we want to avoid any kind of
> license complications. Hope current one is good for Fedora, if not
> please tell, and we'll see what we can do!
Okay, a few more questions:
* If Fedora decides to simply reproduce the quoted statement:
"Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia,
Jose I. Echevarria, Fernando Navarro and Diego Gutierrez."
Specifically, if this is done as part of documentation included with
Mesa, is that sufficient to meet clause 2 even if the Mesa config option
is not set as described in your exception?
* Currently, the Mesa config option for MLAA says: "Morphological
anti-aliasing based on Jimenez\' MLAA. 0 to disable, 8 for default
quality". Is this in compliance with your exception?
Thanks again,
~tom
==
Fedora Project
Subject: RE: Question about Mesa MLAA license
From: Jorge Jimenez <iryoku@gmail.com>
Date: 01/08/2013 12:39 PM
To: "jorge@iryoku.com" <jorge@iryoku.com>, Tom Callaway <tcallawa@redhat.com>
Hi Tom,
What we meant with that is that we made an exception for clause 2.
Instead of clause 2, in the case of the Mesa project, you have to name
the technique Jimenez's MLAA in the config options of Mesa. We did that
just to allow them to solve license issues. This exception should be for
the Mesa project, and any project using Mesa, like Fedora.
We want to widespread usage of our MLAA, so we want to avoid any kind of
license complications. Hope current one is good for Fedora, if not
please tell, and we'll see what we can do!
Cheers,
Jorge
From: Tom Callaway <tcallawa@redhat.com>
Sent: January 8, 2013 6:30 PM
To: jorge@iryoku.com
Subject: Question about Mesa MLAA license
Jorge,
Thanks for all of your fantastic graphics work! I have been auditing
Fedora (a popular distribution of Linux) for license compliance and I
came across your MLAA code in Mesa.
The license says:
* 2. Redistributions in binary form must reproduce the following
statement:
*
* "Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia,
* Jose I. Echevarria, Fernando Navarro and Diego Gutierrez."
*
* Only for use in the Mesa project, this point 2 is filled by naming the
* technique Jimenez's MLAA in the Mesa config options.
That wording is unclear. When you say "Only for use in the Mesa
project...", it seems like you could either be saying:
- This code may only be used as part of Mesa.
OR
- In Mesa, you can comply with clause 2 by simply selecting "Jimenez's
MLAA" in the Mesa config options.
*****
If the first item is true, then we may have to remove the MLAA code from
Fedora's copy of Mesa. However, looking at the license on your SMAA
code, I do not believe it to be the case. Please let me know either way!
Thanks in advance,
Tom Callaway
Fedora Legal
==
Fedora Project

View File

@ -1,11 +0,0 @@
diff -up mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf.dma mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf
--- mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf.dma 2022-11-25 10:32:32.175879868 +1000
+++ mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf 2022-11-25 10:32:43.743067470 +1000
@@ -653,6 +653,7 @@ TODO: document the other workarounds.
<application name="gnome-shell" executable="gnome-shell">
<option name="adaptive_sync" value="false" />
<option name="v3d_nonmsaa_texture_size_limit" value="true" />
+ <option name="mesa_glthread" value="false"/>
</application>
<application name="Desktop — Plasma" executable="plasmashell">
<option name="adaptive_sync" value="false" />

View File

@ -1,42 +0,0 @@
meson: C type error in strtod_l/strtof_l probe
Future compilers will fail compilation due to the C type error:
…/testfile.c: In function 'main':
…/testfile.c:12:30: error: passing argument 2 of 'strtod_l' from incompatible pointer type
12 | double d = strtod_l(s, end, loc);
| ^~~
| |
| char *
/usr/include/stdlib.h:416:43: note: expected 'char ** restrict' but argument is of type 'char *'
416 | char **__restrict __endptr, locale_t __loc)
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
…/testfile.c:13:29: error: passing argument 2 of 'strtof_l' from incompatible pointer type
13 | float f = strtof_l(s, end, loc);
| ^~~
| |
| char *
/usr/include/stdlib.h:420:42: note: expected 'char ** restrict' but argument is of type 'char *'
420 | char **__restrict __endptr, locale_t __loc)
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
This means that the probe no longer tests is objective and always
fails.
Submitted upstream: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26927>
diff --git a/meson.build b/meson.build
index 35cc5f1cd5fd9079..1a5d2ba492be0b31 100644
--- a/meson.build
+++ b/meson.build
@@ -1425,8 +1425,8 @@ if cc.links('''
locale_t loc = newlocale(LC_CTYPE_MASK, "C", NULL);
const char *s = "1.0";
char *end;
- double d = strtod_l(s, end, loc);
- float f = strtof_l(s, end, loc);
+ double d = strtod_l(s, &end, loc);
+ float f = strtof_l(s, &end, loc);
freelocale(loc);
return 0;
}''',

View File

@ -1,691 +0,0 @@
%ifnarch s390x
%global with_hardware 1
%global with_vulkan_hw 1
%global with_vdpau 1
%global with_va 1
%if !0%{?rhel}
%global with_nine 1
%global with_omx 1
%global with_opencl 1
%endif
%global base_vulkan ,amd,nouveau-experimental
%endif
%ifarch %{ix86} x86_64
%global with_crocus 1
%global with_i915 1
%if !0%{?rhel}
%global with_intel_clc 1
%endif
%global with_iris 1
%global with_xa 1
%global intel_platform_vulkan ,intel,intel_hasvk
%endif
%ifarch aarch64 x86_64 %{ix86}
%if !0%{?rhel}
%global with_lima 1
%global with_vc4 1
%endif
%global with_etnaviv 1
%global with_freedreno 1
%global with_kmsro 1
%global with_panfrost 1
%global with_tegra 1
%global with_v3d 1
%global with_xa 1
%global extra_platform_vulkan ,broadcom,freedreno,panfrost
%endif
%ifnarch s390x
%if !0%{?rhel}
%global with_r300 1
%global with_r600 1
%endif
%global with_radeonsi 1
%global with_vmware 1
%endif
%if !0%{?rhel}
%global with_libunwind 1
%global with_lmsensors 1
%endif
%ifarch %{valgrind_arches}
%bcond_without valgrind
%else
%bcond_with valgrind
%endif
%global vulkan_drivers swrast%{?base_vulkan}%{?intel_platform_vulkan}%{?extra_platform_vulkan}
Name: mesa
Summary: Mesa graphics libraries
%global ver 23.3.3
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
Release: 100.bazzite.{{{ git_dir_version }}}
License: MIT AND BSD-3-Clause AND SGI-B-2.0
URL: http://www.mesa3d.org
Source0: https://archive.mesa3d.org/mesa-%{ver}.tar.xz
# src/gallium/auxiliary/postprocess/pp_mlaa* have an ... interestingly worded license.
# Source1 contains email correspondence clarifying the license terms.
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
Source1: Mesa-MLAA-License-Clarification-Email.txt
Patch10: gnome-shell-glthread-disable.patch
Patch11: zink-fix-resizable-bar-detection-logic.patch
Patch12: mesa-meson-c99.patch
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26105/
Patch30: 26105.patch
# https://gitlab.com/evlaV/mesa/
Patch40: valve.patch
BuildRequires: meson >= 1.2.0
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gettext
%if 0%{?with_hardware}
BuildRequires: kernel-headers
%endif
# We only check for the minimum version of pkgconfig(libdrm) needed so that the
# SRPMs for each arch still have the same build dependencies. See:
# https://bugzilla.redhat.com/show_bug.cgi?id=1859515
BuildRequires: pkgconfig(libdrm) >= 2.4.97
%if 0%{?with_libunwind}
BuildRequires: pkgconfig(libunwind)
%endif
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(zlib) >= 1.2.3
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(libselinux)
BuildRequires: pkgconfig(wayland-scanner)
BuildRequires: pkgconfig(wayland-protocols) >= 1.8
BuildRequires: pkgconfig(wayland-client) >= 1.11
BuildRequires: pkgconfig(wayland-server) >= 1.11
BuildRequires: pkgconfig(wayland-egl-backend) >= 3
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xdamage) >= 1.1
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xcb-glx) >= 1.8.1
BuildRequires: pkgconfig(xxf86vm)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xcb-dri2) >= 1.8
BuildRequires: pkgconfig(xcb-dri3)
BuildRequires: pkgconfig(xcb-present)
BuildRequires: pkgconfig(xcb-sync)
BuildRequires: pkgconfig(xshmfence) >= 1.1
BuildRequires: pkgconfig(dri2proto) >= 2.8
BuildRequires: pkgconfig(glproto) >= 1.4.14
BuildRequires: pkgconfig(xcb-xfixes)
BuildRequires: pkgconfig(xcb-randr)
BuildRequires: pkgconfig(xrandr) >= 1.3
BuildRequires: bison
BuildRequires: flex
%if 0%{?with_lmsensors}
BuildRequires: lm_sensors-devel
%endif
%if 0%{?with_vdpau}
BuildRequires: pkgconfig(vdpau) >= 1.1
%endif
%if 0%{?with_va}
BuildRequires: pkgconfig(libva) >= 0.38.0
%endif
%if 0%{?with_omx}
BuildRequires: pkgconfig(libomxil-bellagio)
%endif
BuildRequires: pkgconfig(libelf)
BuildRequires: pkgconfig(libglvnd) >= 1.3.2
BuildRequires: llvm-devel >= 7.0.0
%if 0%{?with_opencl}
BuildRequires: clang-devel
BuildRequires: bindgen
BuildRequires: rust-packaging
BuildRequires: pkgconfig(libclc)
BuildRequires: pkgconfig(SPIRV-Tools)
BuildRequires: pkgconfig(LLVMSPIRVLib)
%endif
%if %{with valgrind}
BuildRequires: pkgconfig(valgrind)
%endif
BuildRequires: python3-devel
BuildRequires: python3-mako
%if 0%{?with_intel_clc}
BuildRequires: python3-ply
%endif
BuildRequires: vulkan-headers
BuildRequires: glslang
%if 0%{?with_vulkan_hw}
BuildRequires: pkgconfig(vulkan)
%endif
%description
%{summary}.
%package filesystem
Summary: Mesa driver filesystem
Provides: mesa-dri-filesystem = %{?epoch:%{epoch}:}%{version}-%{release}
%description filesystem
%{summary}.
%package libGL
Summary: Mesa libGL runtime libraries
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: libglvnd-glx%{?_isa} >= 1:1.3.2
Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description libGL
%{summary}.
%package libGL-devel
Summary: Mesa libGL development package
Requires: %{name}-libGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: libglvnd-devel%{?_isa} >= 1:1.3.2
Provides: libGL-devel
Provides: libGL-devel%{?_isa}
Recommends: gl-manpages
%description libGL-devel
%{summary}.
%package libEGL
Summary: Mesa libEGL runtime libraries
Requires: libglvnd-egl%{?_isa} >= 1:1.3.2
Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description libEGL
%{summary}.
%package libEGL-devel
Summary: Mesa libEGL development package
Requires: %{name}-libEGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: libglvnd-devel%{?_isa} >= 1:1.3.2
Requires: %{name}-khr-devel%{?_isa}
Provides: libEGL-devel
Provides: libEGL-devel%{?_isa}
%description libEGL-devel
%{summary}.
%package dri-drivers
Summary: Mesa-based DRI drivers
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%if 0%{?with_va}
Recommends: %{name}-va-drivers%{?_isa}
%endif
%description dri-drivers
%{summary}.
%if 0%{?with_omx}
%package omx-drivers
Summary: Mesa-based OMX drivers
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description omx-drivers
%{summary}.
%endif
%if 0%{?with_va}
%package va-drivers
Summary: Mesa-based VA-API video acceleration drivers
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: %{name}-vaapi-drivers < 22.2.0-5
%description va-drivers
%{summary}.
%endif
%if 0%{?with_vdpau}
%package vdpau-drivers
Summary: Mesa-based VDPAU drivers
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description vdpau-drivers
%{summary}.
%endif
%package libOSMesa
Summary: Mesa offscreen rendering libraries
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: libOSMesa
Provides: libOSMesa%{?_isa}
%description libOSMesa
%{summary}.
%package libOSMesa-devel
Summary: Mesa offscreen rendering development package
Requires: %{name}-libOSMesa%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description libOSMesa-devel
%{summary}.
%package libgbm
Summary: Mesa gbm runtime library
Provides: libgbm
Provides: libgbm%{?_isa}
Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
# If mesa-dri-drivers are installed, they must match in version. This is here to prevent using
# older mesa-dri-drivers together with a newer mesa-libgbm and its dependants.
# See https://bugzilla.redhat.com/show_bug.cgi?id=2193135 .
Requires: (%{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-dri-drivers%{?_isa})
%description libgbm
%{summary}.
%package libgbm-devel
Summary: Mesa libgbm development package
Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: libgbm-devel
Provides: libgbm-devel%{?_isa}
%description libgbm-devel
%{summary}.
%if 0%{?with_xa}
%package libxatracker
Summary: Mesa XA state tracker
Provides: libxatracker
Provides: libxatracker%{?_isa}
%description libxatracker
%{summary}.
%package libxatracker-devel
Summary: Mesa XA state tracker development package
Requires: %{name}-libxatracker%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: libxatracker-devel
Provides: libxatracker-devel%{?_isa}
%description libxatracker-devel
%{summary}.
%endif
%package libglapi
Summary: Mesa shared glapi
Provides: libglapi
Provides: libglapi%{?_isa}
# If mesa-dri-drivers are installed, they must match in version. This is here to prevent using
# older mesa-dri-drivers together with a newer mesa-libglapi or its dependants.
# See https://bugzilla.redhat.com/show_bug.cgi?id=2193135 .
Requires: (%{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-dri-drivers%{?_isa})
%description libglapi
%{summary}.
%if 0%{?with_opencl}
%package libOpenCL
Summary: Mesa OpenCL runtime library
Requires: ocl-icd%{?_isa}
Requires: libclc%{?_isa}
Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: opencl-filesystem
%description libOpenCL
%{summary}.
%package libOpenCL-devel
Summary: Mesa OpenCL development package
Requires: %{name}-libOpenCL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description libOpenCL-devel
%{summary}.
%endif
%if 0%{?with_nine}
%package libd3d
Summary: Mesa Direct3D9 state tracker
%description libd3d
%{summary}.
%package libd3d-devel
Summary: Mesa Direct3D9 state tracker development package
Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description libd3d-devel
%{summary}.
%endif
%package vulkan-drivers
Summary: Mesa Vulkan drivers
Requires: vulkan%{_isa}
Obsoletes: mesa-vulkan-devel < %{?epoch:%{epoch}:}%{version}-%{release}
%description vulkan-drivers
The drivers with support for the Vulkan API.
%prep
%autosetup -n %{name}-%{ver} -p1
cp %{SOURCE1} docs/
%build
# ensure standard Rust compiler flags are set
export RUSTFLAGS="%build_rustflags"
# We've gotten a report that enabling LTO for mesa breaks some games. See
# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details.
# Disable LTO for now
%define _lto_cflags %{nil}
%meson \
-Dplatforms=x11,wayland \
-Ddri3=enabled \
-Dosmesa=true \
%if 0%{?with_hardware}
-Dgallium-drivers=swrast,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_kmsro:,kmsro}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink} \
%else
-Dgallium-drivers=swrast,virgl \
%endif
-Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
-Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \
-Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \
-Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \
-Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \
-Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \
%if 0%{?with_opencl}
-Dgallium-rusticl=true \
%endif
-Dvulkan-drivers=%{?vulkan_drivers} \
-Dvulkan-layers=device-select \
-Dshared-glapi=enabled \
-Dgles1=enabled \
-Dgles2=enabled \
-Dopengl=true \
-Dgbm=enabled \
-Dglx=dri \
-Degl=enabled \
-Dglvnd=true \
%if 0%{?with_intel_clc}
-Dintel-clc=enabled \
%endif
-Dmicrosoft-clc=disabled \
-Dllvm=enabled \
-Dshared-llvm=enabled \
-Dvalgrind=%{?with_valgrind:enabled}%{!?with_valgrind:disabled} \
-Dxlib-lease=enabled \
-Dbuild-tests=false \
-Dselinux=true \
%if !0%{?with_libunwind}
-Dlibunwind=disabled \
%endif
%if !0%{?with_lmsensors}
-Dlmsensors=disabled \
%endif
-Dandroid-libbacktrace=disabled \
%ifarch %{ix86}
-Dglx-read-only-text=true
%endif
%{nil}
%meson_build
%install
%meson_install
# libvdpau opens the versioned name, don't bother including the unversioned
rm -vf %{buildroot}%{_libdir}/vdpau/*.so
# likewise glvnd
rm -vf %{buildroot}%{_libdir}/libGLX_mesa.so
rm -vf %{buildroot}%{_libdir}/libEGL_mesa.so
# XXX can we just not build this
rm -vf %{buildroot}%{_libdir}/libGLES*
# glvnd needs a default provider for indirect rendering where it cannot
# determine the vendor
ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_system.so.0
# this keeps breaking, check it early. note that the exit from eu-ftr is odd.
pushd %{buildroot}%{_libdir}
for i in libOSMesa*.so libGL.so ; do
eu-findtextrel $i && exit 1
done
popd
%ifarch %{ix86}
rm -Rf %{buildroot}%{_datadir}/drirc.d/00-radv-defaults.conf
rm -Rf %{buildroot}%{_datadir}/drirc.d/00-mesa-defaults.conf
%endif
%files filesystem
%doc docs/Mesa-MLAA-License-Clarification-Email.txt
%dir %{_libdir}/dri
%if 0%{?with_hardware}
%if 0%{?with_vdpau}
%dir %{_libdir}/vdpau
%endif
%endif
%files libGL
%{_libdir}/libGLX_mesa.so.0*
%{_libdir}/libGLX_system.so.0*
%files libGL-devel
%dir %{_includedir}/GL/internal
%{_includedir}/GL/internal/dri_interface.h
%{_libdir}/pkgconfig/dri.pc
%{_libdir}/libglapi.so
%files libEGL
%{_datadir}/glvnd/egl_vendor.d/50_mesa.json
%{_libdir}/libEGL_mesa.so.0*
%files libEGL-devel
%dir %{_includedir}/EGL
%{_includedir}/EGL/eglext_angle.h
%{_includedir}/EGL/eglmesaext.h
%files libglapi
%{_libdir}/libglapi.so.0
%{_libdir}/libglapi.so.0.*
%files libOSMesa
%{_libdir}/libOSMesa.so.8*
%files libOSMesa-devel
%dir %{_includedir}/GL
%{_includedir}/GL/osmesa.h
%{_libdir}/libOSMesa.so
%{_libdir}/pkgconfig/osmesa.pc
%files libgbm
%{_libdir}/libgbm.so.1
%{_libdir}/libgbm.so.1.*
%files libgbm-devel
%{_libdir}/libgbm.so
%{_includedir}/gbm.h
%{_libdir}/pkgconfig/gbm.pc
%if 0%{?with_xa}
%files libxatracker
%if 0%{?with_hardware}
%{_libdir}/libxatracker.so.2
%{_libdir}/libxatracker.so.2.*
%endif
%files libxatracker-devel
%if 0%{?with_hardware}
%{_libdir}/libxatracker.so
%{_includedir}/xa_tracker.h
%{_includedir}/xa_composite.h
%{_includedir}/xa_context.h
%{_libdir}/pkgconfig/xatracker.pc
%endif
%endif
%if 0%{?with_opencl}
%files libOpenCL
%{_libdir}/libMesaOpenCL.so.*
%{_libdir}/libRusticlOpenCL.so.*
%{_sysconfdir}/OpenCL/vendors/mesa.icd
%{_sysconfdir}/OpenCL/vendors/rusticl.icd
%files libOpenCL-devel
%{_libdir}/libMesaOpenCL.so
%{_libdir}/libRusticlOpenCL.so
%endif
%if 0%{?with_nine}
%files libd3d
%dir %{_libdir}/d3d/
%{_libdir}/d3d/*.so.*
%files libd3d-devel
%{_libdir}/pkgconfig/d3d.pc
%{_includedir}/d3dadapter/
%{_libdir}/d3d/*.so
%endif
%files dri-drivers
%dir %{_datadir}/drirc.d
%ifarch aarch64 x86_64
%{_datadir}/drirc.d/00-mesa-defaults.conf
%endif
%{_libdir}/dri/kms_swrast_dri.so
%{_libdir}/dri/swrast_dri.so
%{_libdir}/dri/virtio_gpu_dri.so
%if 0%{?with_hardware}
%if 0%{?with_r300}
%{_libdir}/dri/r300_dri.so
%endif
%if 0%{?with_radeonsi}
%if 0%{?with_r600}
%{_libdir}/dri/r600_dri.so
%endif
%{_libdir}/dri/radeonsi_dri.so
%endif
%ifarch %{ix86} x86_64
%{_libdir}/dri/crocus_dri.so
%{_libdir}/dri/i915_dri.so
%{_libdir}/dri/iris_dri.so
%endif
%ifarch aarch64 x86_64 %{ix86}
%{_libdir}/dri/ingenic-drm_dri.so
%{_libdir}/dri/imx-drm_dri.so
%{_libdir}/dri/imx-lcdif_dri.so
%{_libdir}/dri/kirin_dri.so
%{_libdir}/dri/komeda_dri.so
%{_libdir}/dri/mali-dp_dri.so
%{_libdir}/dri/mcde_dri.so
%{_libdir}/dri/mxsfb-drm_dri.so
%{_libdir}/dri/rcar-du_dri.so
%{_libdir}/dri/stm_dri.so
%endif
%if 0%{?with_vc4}
%{_libdir}/dri/vc4_dri.so
%endif
%if 0%{?with_v3d}
%{_libdir}/dri/v3d_dri.so
%endif
%if 0%{?with_freedreno}
%{_libdir}/dri/kgsl_dri.so
%{_libdir}/dri/msm_dri.so
%endif
%if 0%{?with_etnaviv}
%{_libdir}/dri/etnaviv_dri.so
%endif
%if 0%{?with_tegra}
%{_libdir}/dri/tegra_dri.so
%endif
%if 0%{?with_lima}
%{_libdir}/dri/lima_dri.so
%endif
%if 0%{?with_panfrost}
%{_libdir}/dri/panfrost_dri.so
%endif
%{_libdir}/dri/nouveau_dri.so
%if 0%{?with_vmware}
%{_libdir}/dri/vmwgfx_dri.so
%endif
%endif
%if 0%{?with_opencl}
%dir %{_libdir}/gallium-pipe
%{_libdir}/gallium-pipe/*.so
%endif
%if 0%{?with_kmsro}
%{_libdir}/dri/armada-drm_dri.so
%{_libdir}/dri/exynos_dri.so
%{_libdir}/dri/hdlcd_dri.so
%{_libdir}/dri/hx8357d_dri.so
%{_libdir}/dri/ili9225_dri.so
%{_libdir}/dri/ili9341_dri.so
%{_libdir}/dri/imx-dcss_dri.so
%{_libdir}/dri/mediatek_dri.so
%{_libdir}/dri/meson_dri.so
%{_libdir}/dri/mi0283qt_dri.so
%{_libdir}/dri/pl111_dri.so
%{_libdir}/dri/repaper_dri.so
%{_libdir}/dri/rockchip_dri.so
%{_libdir}/dri/st7586_dri.so
%{_libdir}/dri/st7735r_dri.so
%{_libdir}/dri/sun4i-drm_dri.so
%endif
%if 0%{?with_vulkan_hw}
%{_libdir}/dri/zink_dri.so
%endif
%if 0%{?with_omx}
%files omx-drivers
%{_libdir}/bellagio/libomx_mesa.so
%endif
%if 0%{?with_va}
%files va-drivers
%{_libdir}/dri/nouveau_drv_video.so
%if 0%{?with_r600}
%{_libdir}/dri/r600_drv_video.so
%endif
%if 0%{?with_radeonsi}
%{_libdir}/dri/radeonsi_drv_video.so
%endif
%{_libdir}/dri/virtio_gpu_drv_video.so
%endif
%if 0%{?with_vdpau}
%files vdpau-drivers
%{_libdir}/vdpau/libvdpau_nouveau.so.1*
%if 0%{?with_r600}
%{_libdir}/vdpau/libvdpau_r600.so.1*
%endif
%if 0%{?with_radeonsi}
%{_libdir}/vdpau/libvdpau_radeonsi.so.1*
%endif
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1*
%endif
%files vulkan-drivers
%{_libdir}/libvulkan_lvp.so
%{_datadir}/vulkan/icd.d/lvp_icd.*.json
%{_libdir}/libVkLayer_MESA_device_select.so
%{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
%if 0%{?with_vulkan_hw}
%{_libdir}/libvulkan_radeon.so
%ifarch aarch64 x86_64
%{_datadir}/drirc.d/00-radv-defaults.conf
%endif
%{_datadir}/vulkan/icd.d/radeon_icd.*.json
%{_libdir}/libvulkan_nouveau.so
%{_datadir}/vulkan/icd.d/nouveau_icd.*.json
%ifarch %{ix86} x86_64
%{_libdir}/libvulkan_intel.so
%{_datadir}/vulkan/icd.d/intel_icd.*.json
%{_libdir}/libvulkan_intel_hasvk.so
%{_datadir}/vulkan/icd.d/intel_hasvk_icd.*.json
%endif
%ifarch aarch64 x86_64 %{ix86}
%{_libdir}/libvulkan_broadcom.so
%{_datadir}/vulkan/icd.d/broadcom_icd.*.json
%{_libdir}/libvulkan_freedreno.so
%{_datadir}/vulkan/icd.d/freedreno_icd.*.json
%{_libdir}/libvulkan_panfrost.so
%{_datadir}/vulkan/icd.d/panfrost_icd.*.json
%endif
%endif
%changelog
%autochangelog

File diff suppressed because it is too large Load Diff

View File

@ -1,39 +0,0 @@
From a077c14f150f1c4f670dce381ac2eb548f1a4ac2 Mon Sep 17 00:00:00 2001
From: Alessandro Astone <ales.astone@gmail.com>
Date: Wed, 10 Jan 2024 17:24:30 +0100
Subject: [PATCH] zink: Fix resizable BAR detection logic
This was broken in two ways:
* When looking for the MAX biggest_ram it was actually comparing
a candidate against biggest_vis_ram
* mem_props.memoryTypes[] should be accessed with the memory type
index as found in heap_map
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10341
Cc: 23.3 <mesa-stable>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26979>
---
src/gallium/drivers/zink/zink_screen.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index 5a6d17cb4fa3..6697d7ab938c 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -3258,10 +3258,10 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev
{
uint64_t biggest_vis_vram = 0;
for (unsigned i = 0; i < screen->heap_count[ZINK_HEAP_DEVICE_LOCAL_VISIBLE]; i++)
- biggest_vis_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[i].heapIndex].size);
+ biggest_vis_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[screen->heap_map[ZINK_HEAP_DEVICE_LOCAL_VISIBLE][i]].heapIndex].size);
uint64_t biggest_vram = 0;
for (unsigned i = 0; i < screen->heap_count[ZINK_HEAP_DEVICE_LOCAL]; i++)
- biggest_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[i].heapIndex].size);
+ biggest_vram = MAX2(biggest_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[screen->heap_map[ZINK_HEAP_DEVICE_LOCAL][i]].heapIndex].size);
/* determine if vis vram is roughly equal to total vram */
if (biggest_vis_vram > biggest_vram * 0.9)
screen->resizable_bar = true;
--
GitLab

View File

@ -0,0 +1,47 @@
From 1c8d6300c3a64d124534182f92d6f714573e8821 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Wed, 31 Jan 2024 12:21:02 +0100
Subject: [PATCH 1/2] Revert "spa: libcamera: bump minimum supported version to
0.2.0"
This reverts commit 01cb3fa862d36adfded8f02540660b43b9c1584c.
---
spa/meson.build | 3 ++-
spa/plugins/libcamera/libcamera-device.cpp | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/spa/meson.build b/spa/meson.build
index db0a84425..0ee750d6e 100644
--- a/spa/meson.build
+++ b/spa/meson.build
@@ -96,8 +96,9 @@ if get_option('spa-plugins').allowed()
endif
summary({'Vulkan': have_vulkan}, bool_yn: true, section: 'Misc dependencies')
- libcamera_dep = dependency('libcamera', version: '>= 0.2.0', required: get_option('libcamera'))
+ libcamera_dep = dependency('libcamera', required: get_option('libcamera'))
summary({'libcamera': libcamera_dep.found()}, bool_yn: true, section: 'Backend')
+ cdata.set('HAVE_LIBCAMERA_SYSTEM_DEVICES', libcamera_dep.version().version_compare('>= 0.1.0'))
compress_offload_option = get_option('compress-offload')
summary({'Compress-Offload': compress_offload_option.allowed()}, bool_yn: true, section: 'Backend')
diff --git a/spa/plugins/libcamera/libcamera-device.cpp b/spa/plugins/libcamera/libcamera-device.cpp
index b25a4eb72..0abf2f619 100644
--- a/spa/plugins/libcamera/libcamera-device.cpp
+++ b/spa/plugins/libcamera/libcamera-device.cpp
@@ -61,10 +61,12 @@ struct impl {
static const libcamera::Span<const int64_t> cameraDevice(
const Camera *camera)
{
+#ifdef HAVE_LIBCAMERA_SYSTEM_DEVICES
const ControlList &props = camera->properties();
if (auto devices = props.get(properties::SystemDevices))
return devices.value();
+#endif
return {};
}
--
2.43.0

View File

@ -0,0 +1,71 @@
From 20dd33d5b68f6007c41a7ffccf37aeb25aa9a920 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Wed, 31 Jan 2024 12:21:08 +0100
Subject: [PATCH 2/2] Revert "spa: libcamera: use
`CameraConfiguration::orientation`"
This reverts commit fd33d2d3bb6333c7d6e74cbaa806bff2d908f589.
---
spa/plugins/libcamera/libcamera-utils.cpp | 36 ++++++++++++-----------
1 file changed, 19 insertions(+), 17 deletions(-)
diff --git a/spa/plugins/libcamera/libcamera-utils.cpp b/spa/plugins/libcamera/libcamera-utils.cpp
index c197248d3..2b1aea5a7 100644
--- a/spa/plugins/libcamera/libcamera-utils.cpp
+++ b/spa/plugins/libcamera/libcamera-utils.cpp
@@ -716,23 +716,25 @@ static int spa_libcamera_use_buffers(struct impl *impl, struct port *port,
}
static const struct {
- Orientation libcamera_orientation; /* clockwise rotation then horizontal mirroring */
- uint32_t spa_transform_value; /* horizontal mirroring then counter-clockwise rotation */
-} orientation_map[] = {
- { Orientation::Rotate0, SPA_META_TRANSFORMATION_None },
- { Orientation::Rotate0Mirror, SPA_META_TRANSFORMATION_Flipped },
- { Orientation::Rotate90, SPA_META_TRANSFORMATION_270 },
- { Orientation::Rotate90Mirror, SPA_META_TRANSFORMATION_Flipped90 },
- { Orientation::Rotate180, SPA_META_TRANSFORMATION_180 },
- { Orientation::Rotate180Mirror, SPA_META_TRANSFORMATION_Flipped180 },
- { Orientation::Rotate270, SPA_META_TRANSFORMATION_90 },
- { Orientation::Rotate270Mirror, SPA_META_TRANSFORMATION_Flipped270 },
+ Transform libcamera_transform;
+ uint32_t spa_transform_value;
+} transform_map[] = {
+ { Transform::Identity, SPA_META_TRANSFORMATION_None },
+ { Transform::Rot0, SPA_META_TRANSFORMATION_None },
+ { Transform::HFlip, SPA_META_TRANSFORMATION_Flipped },
+ { Transform::VFlip, SPA_META_TRANSFORMATION_Flipped180 },
+ { Transform::HVFlip, SPA_META_TRANSFORMATION_180 },
+ { Transform::Rot180, SPA_META_TRANSFORMATION_180 },
+ { Transform::Transpose, SPA_META_TRANSFORMATION_Flipped90 },
+ { Transform::Rot90, SPA_META_TRANSFORMATION_90 },
+ { Transform::Rot270, SPA_META_TRANSFORMATION_270 },
+ { Transform::Rot180Transpose, SPA_META_TRANSFORMATION_Flipped270 },
};
-static uint32_t libcamera_orientation_to_spa_transform_value(Orientation orientation)
+static uint32_t libcamera_transform_to_spa_transform_value(Transform transform)
{
- for (const auto& t : orientation_map) {
- if (t.libcamera_orientation == orientation)
+ for (const auto& t : transform_map) {
+ if (t.libcamera_transform == transform)
return t.spa_transform_value;
}
return SPA_META_TRANSFORMATION_None;
@@ -786,9 +788,9 @@ mmap_init(struct impl *impl, struct port *port,
buffers[i], SPA_META_VideoTransform, sizeof(*b->videotransform));
if (b->videotransform) {
b->videotransform->transform =
- libcamera_orientation_to_spa_transform_value(impl->config->orientation);
- spa_log_debug(impl->log, "Setting videotransform for buffer %u to %u",
- i, b->videotransform->transform);
+ libcamera_transform_to_spa_transform_value(impl->config->transform);
+ spa_log_debug(impl->log, "Setting videotransform for buffer %d to %u (from %s)",
+ i, b->videotransform->transform, transformToString(impl->config->transform));
}
--
2.43.0

View File

@ -1,6 +1,6 @@
%global majorversion 1
%global minorversion 0
%global microversion 1
%global microversion 3
%global apiversion 0.3
%global spaversion 0.2
@ -77,13 +77,15 @@ Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{ver
Source1: pipewire.sysusers
## upstream patches
Patch0001: 0001-Revert-spa-libcamera-bump-minimum-supported-version-.patch
Patch0002: 0002-Revert-spa-libcamera-use-CameraConfiguration-orienta.patch
# Holo: TODO: Bug reference
Patch0: bc435841c141ad38768b6cb1a7ad45e8bb13c7d2.patch
Patch10: bc435841c141ad38768b6cb1a7ad45e8bb13c7d2.patch
# Holo: TODO: Bug reference
#Patch1: acf7c0af0bf31b937c41e916a73c67ae0a253632.patch
#Patch20: acf7c0af0bf31b937c41e916a73c67ae0a253632.patch
# Holo: upstream MR 1792
Patch2: 0001-Bluez5-backend-native-HSP-AG-release-SCO-link-on-AT-.patch
Patch30: 0001-Bluez5-backend-native-HSP-AG-release-SCO-link-on-AT-.patch
## upstreamable patches

View File

@ -88,7 +88,6 @@ process-scheduler enable=true {
fancontrol.py
gamemoderun
gamescope
handycon
hhd
input-remapper-service
ionice

View File

@ -1,9 +1,9 @@
*Using a handheld other than the Steam Deck?* Be sure to follow our [alternative handheld documentation](https://github.com/ublue-os/bazzite#alternative-handhelds).
*Having issues with controls on a handheld other than the Steam Deck?* Be sure to read the [hhd after install guide](https://github.com/hhd-dev/hhd#after-install).
*Using a handheld other than the Steam Deck?*~Be sure to follow our [alternative handheld documentation](https://github.com/ublue-os/bazzite#alternative-handhelds).
*Having issues with controls on a handheld other than the Steam Deck?*~Be sure to read the [hhd after install guide](https://github.com/hhd-dev/hhd#after-install).
*Want to install Decky Loader?* There's a `ujust` command for that! `ujust get-decky`
The updater built into 󰓓 Steam game mode has been modified to update Bazzite, Flatpaks, and Distrobox containers. *Just ignore the changelog.*
*Install a game with Lutris?* Right click on it and `Create steam shortcut` to easily play it in 󰓓 Steam game mode.
*Games missing icons?* The `SteamGridDB` plugin for Decky Loader makes it easy to add missing art - [More info](https://github.com/SteamGridDB/decky-steamgriddb)
*Confused about what games are compatible with Linux?* The `ProtonDB Badges` plugin for Decky Loader adds community-powered game compatibility badges to your entire 󰓓 Steam Library - [More info](https://github.com/OMGDuke/protondb-decky)
*Games missing icons?* The `SteamGridDB` plugin for Decky Loader makes it easy to add missing art~[More info](https://github.com/SteamGridDB/decky-steamgriddb)
*Confused about what games are compatible with Linux?* The `ProtonDB Badges` plugin for Decky Loader adds community-powered game compatibility badges to your entire 󰓓 Steam Library~[More info](https://github.com/OMGDuke/protondb-decky)
*Looking for more security?* Tailscale and OpenVPN are built in, and can be controlled from 󰓓 Steam game mode by the `Tailscale Control` and `TunnelDeck` Decky loader plugins. Other VPN solutions can be layered with `rpm-ostree`.
*Using a handheld that doesn't have enough buttons?* 󰓓 Steam game mode now supports touch gestures to slide out the menus, thanks to [ChimeraOS](https://chimeraos.org/).

View File

@ -0,0 +1,55 @@
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Steam Deck Controller - USB
#
# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html
key 304 BUTTON_A
key 305 BUTTON_B
key 307 BUTTON_X
key 308 BUTTON_Y
key 310 BUTTON_L1
key 311 BUTTON_R1
# Triggers.
axis 0x02 LTRIGGER
axis 0x05 RTRIGGER
# Left and right stick.
axis 0x00 X
axis 0x01 Y
# Right stick / mousepad
axis 0x03 Z
axis 0x04 RZ
key 317 BUTTON_THUMBL
key 318 BUTTON_THUMBR
# Hat.
axis 0x10 HAT_X
axis 0x11 HAT_Y
# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt
# Left arrow
key 314 BUTTON_SELECT
# Right arrow
key 315 BUTTON_START
# Steam key
key 316 BUTTON_MODE

View File

@ -1,3 +1,3 @@
*Want an animated wallpaper?* The Wallpaper Engine plugin for KDE is pre-installed - [View the usage guide](https://github.com/catsout/wallpaper-engine-kde-plugin#usage)
*Want an animated wallpaper?* The Wallpaper Engine plugin for KDE is pre-installed~[View the usage guide](https://github.com/catsout/wallpaper-engine-kde-plugin#usage)
*Rather use KDE Konsole?* You can restore the application icon for it with `ujust restore-original-terminal`. Be sure to also change the default terminal in System Settings.
ProtonUp-Qt can be used to install and update custom versions of Proton. We recommend Proton-GE for problematic Steam games and Wine-GE for all other use cases outside of Steam.

View File

@ -1,7 +1,6 @@
#!/usr/bin/bash
source /etc/default/waydroid-launcher
source /etc/default/steamos-nested-desktop
# Kill any previous remnants
if [ "$(systemctl is-active waydroid-container.service)" == 'active' ]; then
@ -17,7 +16,7 @@ fi
killall -9 weston
pkexec /usr/libexec/waydroid-container-start
if [ -z "$(pgrep wlr-randr)" ]; then
cage -- bash -c "wlr-randr --output X11-1 --custom-mode ${STEAMOS_NESTED_DESKTOP_WIDTH:-1280}x${STEAMOS_NESTED_DESKTOP_HEIGHT:-800}; sleep 1; waydroid show-full-ui &> /dev/null &"
cage -- bash -c "wlr-randr --output X11-1 --custom-mode ${WAYDROID_WIDTH:-1280}x${WAYDROID_HEIGHT:-800}; sleep 1; waydroid show-full-ui &> /dev/null &"
fi
# Fix controllers, we know Waydroid has started because surfaceflinger is running

View File

@ -8,7 +8,7 @@ case "$(cat /sys/devices/virtual/dmi/id/product_name)" in
"Jupiter" | "Galileo" | "AYANEO GEEK" | "G1619-05")
STEAMOS_NESTED_DESKTOP_WIDTH=1280
STEAMOS_NESTED_DESKTOP_HEIGHT=800 ;;
"ROG Ally RC71L_RC71L" | "G1618-04" | "G1617-01" | "Loki Max")
"ROG Ally RC71L_RC71L" | "ROG Ally RC71L" | "G1618-04" | "G1617-01" | "Loki Max")
STEAMOS_NESTED_DESKTOP_WIDTH=1920
STEAMOS_NESTED_DESKTOP_HEIGHT=1080 ;;
"AYANEO 2" | "AYANEO 2S" | "AOKZOE A1 AR07" | "G1619-04" | "AIR Plus")

View File

@ -1,2 +1,29 @@
WAYDROID_DENSITY=215
# Adjust the below values to set the resolution for devices not explicitly checked for.
# This includes all laptops, all desktops, and some handhelds.
WAYDROID_UNKNOWN_WIDTH=1920
WAYDROID_UNKNOWN_HEIGHT=1080
WAYDROID_GRALLOC=minigbm_gbm_mesa
# Handle nested desktop resolution for known devices.
case "$(cat /sys/devices/virtual/dmi/id/product_name)" in
"Jupiter" | "Galileo" | "AYANEO GEEK" | "G1619-05")
WAYDROID_WIDTH=1280
WAYDROID_HEIGHT=800
WAYDROID_DENSITY=215 ;;
"ROG Ally RC71L_RC71L" | "G1618-04" | "G1617-01" | "Loki Max")
WAYDROID_WIDTH=1920
WAYDROID_HEIGHT=1080 ;;
"AYANEO 2" | "AYANEO 2S" | "AOKZOE A1 AR07" | "G1619-04" | "AIR Plus")
WAYDROID_WIDTH=1920
WAYDROID_HEIGHT=1200 ;;
"83E1")
WAYDROID_WIDTH=2560
WAYDROID_HEIGHT=1600
WAYDROID_DENSITY=340 ;;
"Win600")
WAYDROID_WIDTH=1280
WAYDROID_HEIGHT=720 ;;
*)
WAYDROID_WIDTH=$WAYDROID_UNKNOWN_WIDTH
WAYDROID_HEIGHT=$WAYDROID_UNKNOWN_HEIGHT ;;
esac

View File

@ -7,7 +7,7 @@ IMAGE_FLAVOR=$(jq -r '."image-flavor"' < $IMAGE_INFO)
FEDORA_VERSION=$(jq -r '."fedora-version"' < $IMAGE_INFO)
# SCRIPT VERSION
HWS_VER=28
HWS_VER=29
HWS_VER_FILE="/etc/bazzite/hws_version"
HWS_VER_RAN=$(cat $HWS_VER_FILE)
@ -182,13 +182,6 @@ if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegam
systemctl enable --now ds-inhibit.service
else
echo "Generic device detected. Performing setup..."
if /usr/libexec/hardware/hhd-supported-hardware; then
echo "HHD supported handheld detected, disabling handycon"
systemctl disable --now handycon.service
elif /usr/libexec/hardware/handycon-supported-hardware; then
echo "HandyGCCS supported handheld detected, enabling handycon"
systemctl enable --now handycon.service
fi
systemctl disable --now jupiter-fan-control.service
systemctl disable --now vpower.service
systemctl disable --now jupiter-biosupdate.service

View File

@ -10,7 +10,7 @@ BAZZITE_CONFIG_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/bazzite"
mkdir -p "$BAZZITE_CONFIG_DIR"
# SCRIPT VERSION
USER_SETUP_VER=28
USER_SETUP_VER=29
USER_SETUP_VER_FILE="$BAZZITE_CONFIG_DIR/version"
USER_SETUP_FEDORA_VER_FILE="$BAZZITE_CONFIG_DIR/fedora_version"
USER_SETUP_IMAGE_VER_FILE=$BAZZITE_CONFIG_DIR/image_name""

View File

@ -1,8 +0,0 @@
#!/usr/bin/bash
# Returns true for hardware that is supported by Handycon exclusively.
SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)"
if [[ ":AYANEO GEEK:AYANEO 2:AYANEO 2S:AOKZOE A1 AR07:G1619-04:Win600:Loki Max:" =~ ":$SYS_ID:" ]]; then
exit 0
else
exit 1
fi

View File

@ -1,7 +1,7 @@
#!/usr/bin/bash
# Returns true for hardware that is supported by HHD
SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)"
if [[ ":ROG Ally RC71L_RC71L:83E1:G1618-04:G1617-01:G1619-05:AIR Plus:" =~ ":$SYS_ID:" ]]; then
if [[ ":ROG Ally RC71L_RC71L:ROG Ally RC71L:83E1:G1618-04:G1617-01:G1619-05:AIR Plus:AYANEO GEEK:AYANEO 2:AYANEO 2S:AOKZOE A1 AR07:G1619-04:Win600:Loki Max:" =~ ":$SYS_ID:" ]]; then
exit 0
else
exit 1

View File

@ -1,7 +1,7 @@
#!/usr/bin/bash
# Returns true for hardware that needs a rotation fix in KDE
SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)"
if [[ ":ROG Ally RC71L_RC71L:83E1:Loki Max:G1618-04:" =~ ":$SYS_ID:" ]]; then
if [[ ":ROG Ally RC71L_RC71L:ROG Ally RC71L:83E1:Loki Max:G1618-04:" =~ ":$SYS_ID:" ]]; then
exit 0
else
exit 1

View File

@ -1,7 +1,7 @@
#!/usr/bin/bash
# Returns true for hardware that is supported by SimpleDeckyTDP
SYS_ID="$(cat /sys/devices/virtual/dmi/id/product_name)"
if [[ ":ROG Ally RC71L_RC71L:83E1:G1618-04:G1617-01:G1619-05:AIR Plus:" =~ ":$SYS_ID:" ]]; then
if [[ ":ROG Ally RC71L_RC71L:ROG Ally RC71L:83E1:G1618-04:G1617-01:G1619-05:AIR Plus:" =~ ":$SYS_ID:" ]]; then
exit 0
else
exit 1

View File

@ -23,5 +23,5 @@ if [[ -f "$TIP_FILE" ]]; then
TIP_ESCAPED=$(escape "$TIP")
sed -e "s/%IMAGE_NAME%/$IMAGE_NAME_ESCAPED/g" -e "s/%IMAGE_TAG%/$IMAGE_TAG_ESCAPED/g" -e "s/%TIP%/$TIP_ESCAPED/g" /usr/share/ublue-os/motd/bazzite.md | /usr/bin/glow -s auto -
sed -e "s/%IMAGE_NAME%/$IMAGE_NAME_ESCAPED/g" -e "s/%IMAGE_TAG%/$IMAGE_TAG_ESCAPED/g" -e "s/%TIP%/$TIP_ESCAPED/g" /usr/share/ublue-os/motd/bazzite.md | tr '~' '\n' | /usr/bin/glow -s auto -
fi

View File

@ -1,6 +1,7 @@
#!/usr/bin/bash
source /etc/default/waydroid-launcher
source /etc/default/steamos-nested-desktop
# Ensure needed props are present
if ! grep -q "persist.waydroid.udev=true" "/var/lib/waydroid/waydroid_base.prop"; then
@ -11,7 +12,15 @@ if ! grep -q "persist.waydroid.uevent=true" "/var/lib/waydroid/waydroid_base.pro
sudo sh -c 'echo -e "persist.waydroid.uevent=true" >> /var/lib/waydroid/waydroid_base.prop'
fi
sudo sed -i "s/ro.sf.lcd_density=.*/ro.sf.lcd_density=${WAYDROID_DENSITY:-215}/g" /var/lib/waydroid/waydroid_base.prop
if [[ ! -z "$WAYDROID_DENSITY" ]]; then
sudo sed -i "s/ro.sf.lcd_density=.*/ro.sf.lcd_density=${WAYDROID_DENSITY}/g" /var/lib/waydroid/waydroid_base.prop
fi
sudo sed -i "s/ro.hardware.gralloc=.*/ro.hardware.gralloc=${WAYDROID_GRALLOC:-minigbm_gbm_mesa}/g" /var/lib/waydroid/waydroid_base.prop
# Add controller fixes automatically
if [[ -f "/usr/share/ublue-os/waydroid/Vendor_28de_Product_11ff.kl" ]]; then
mkdir -p "/var/lib/waydroid/overlay/system/usr/keylayout"
cp "/usr/share/ublue-os/waydroid/Vendor_28de_Product_11ff.kl" "/var/lib/waydroid/overlay/system/usr/keylayout/"
fi
sudo systemctl start waydroid-container.service

View File

@ -1,3 +1,3 @@
#!/usr/bin/bash
sudo sh -c 'for i in $(seq 7 9); do echo add > /sys/class/input/event$i/uevent; done'
sudo sh -c 'echo add > /sys/devices/virtual/input/input*/event*/uevent'

View File

@ -1,7 +1,7 @@
It is **always** better to install packages with Distrobox rather than layer them with rpm-ostree. `ujust distrobox` makes it easy! - [More about supported packages](https://universal-blue.discourse.group/docs?topic=35)
Packages installed in Distrobox can be exported to appear like any other application - [View documentation](https://github.com/89luca89/distrobox/blob/main/docs/usage/distrobox-export.md).
*Update break something?* You can roll back and pin the previous release or rebase by build date - [View our guide](https://universal-blue.discourse.group/docs?topic=36).
*This isn't a distro*, this is a custom image built on  Fedora Atomic Desktop technology - [View our mission](https://universal-blue.org/mission/)
*Looking to dual-boot with  Windows?* [Check out our dual booting guide](https://universal-blue.discourse.group/docs?topic=129).
**Support the app store!** [Donate to  Flatpak](https://opencollective.com/flatpak)
It is **always** better to install packages with Distrobox rather than layer them with rpm-ostree. `ujust distrobox` makes it easy!~[More about supported packages](https://universal-blue.discourse.group/docs?topic=35)
Packages installed in Distrobox can be exported to appear like any other application~[View documentation](https://github.com/89luca89/distrobox/blob/main/docs/usage/distrobox-export.md)
*Update break something?* You can roll back and pin the previous release or rebase by build date~[View our guide](https://universal-blue.discourse.group/docs?topic=36)
*This isn't a distro*, this is a custom image built on  Fedora Atomic Desktop technology~[View our mission](https://ublue.it/mission/)
*Looking to dual-boot with  Windows?*~[Check out our dual booting guide](https://universal-blue.discourse.group/docs?topic=129)
**Support the app store!**~[Donate to  Flatpak](https://opencollective.com/flatpak)
**H.264 hardware acceleration is supported out of the box.** No tweaks necessary!

View File

@ -1,12 +1,12 @@
*Installing a Windows game that isn't on Steam?* Lutris is pre-installed and recommended for better handling of wine prefixes - [View gaming guide](https://universal-blue.discourse.group/docs?topic=31)
BTRFS is used by default for external drives, and we recommend that or EXT4 over NTFS in all circumstances - [More info](https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows)
*Installing a Windows game that isn't on Steam?* Lutris is pre-installed and recommended for better handling of wine prefixes~[View gaming guide](https://universal-blue.discourse.group/docs?topic=31)
BTRFS is used by default for external drives, and we recommend that or EXT4 over NTFS in all circumstances~[More info](https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows)
*No Flatpak or distro packaging available?* The Gear Lever app is included to make managing and integrating AppImages easy!
*Want to control your device from your phone?* The KDE Connect app functions with all Bazzite images - [More info](https://kdeconnect.kde.org/)
*Trying to use Feral Gamemode?* System76-Scheduler in Bazzite replaces it, offering automatic nice value adjustments for applications based on the currently focused window and preconfigured rules - [More info](https://github.com/pop-os/system76-scheduler#scheduler-config)
Discover Overlay is preinstalled, allowing Discord to overlay your games during voice chats - [More info](https://trigg.github.io/Discover/)
*Looking to setup Waydroid?* - [View our documentation](https://universal-blue.discourse.group/docs?topic=32)
*Want to control your device from your phone?* The KDE Connect app functions with all Bazzite images~[More info](https://kdeconnect.kde.org/)
*Trying to use Feral Gamemode?* System76-Scheduler in Bazzite replaces it, offering automatic nice value adjustments for applications based on the currently focused window and preconfigured rules~[More info](https://github.com/pop-os/system76-scheduler#scheduler-config)
Discover Overlay is preinstalled, allowing Discord to overlay your games during voice chats~[More info](https://trigg.github.io/Discover/)
*Looking to setup Waydroid?*~[View our documentation](https://universal-blue.discourse.group/docs?topic=32)
Bazzite uses ZSTD compression in BTRFS by default, and deduplicates files across your entire drive. **More space for your games!**
*Have a large library of ROMs to manage?* ROM Properties Page shell extension is installed by default and makes it much easier, with thumbnails and additional info for all of your files.
*Need more control over your Flatpaks?* Check out the Warehouse and Flatseal applications to manage them.
*Want more tips and tricks?* - [View Documentation](https://universal-blue.discourse.group/docs?topic=287)
*Desktop users: Want a to easily customize MangoHud and vkBasalt?* Use the GOverlay application as a graphical user interface to adjust settings.
*Want more tips and tricks?*~[View Documentation](https://universal-blue.discourse.group/docs?topic=287)
*Desktop users: Want to easily customize MangoHud and vkBasalt?* Use the GOverlay application as a graphical user interface to adjust settings.