ppsspp/ppsspp.spec

185 lines
5.0 KiB
RPMSpec
Raw Normal View History

#
# spec file for package ppsspp
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: ppsspp
Accepting request 542857 from home:xenonpk - Update to version 1.4.2~git20171118: * Remove trailing whitespace from CMakeLists.txt * Vulkan: Fix stencil clears to a specific value. Should help #10150 * Silence travis gcc version errors. - Update to version 1.4.2~git20171117: * Remove wrong comments * GPU: Advance the vertex pointer after BBOX vertices are sent. Fixes #6554, finally! * Win32: Improvements to vulkan init error handling * Temporarily turn off Vulkan threading on AMD, see issue #10097. * Vulkan: Forgot to enable our various depth rounding features. * Vulkan: Flush at display list waits. Fixes #10095 * Minor cleanup, and more terrifying orientation hackery * Android: When creating shortcuts, put the file path in data, not in Extras. * Fix the "vulkan not found" message on android. Fixes #10034 * Make remoteiso_subdir and server editable on Android. Fixes #10142. Really need a better mechanism for these fields. * Workaround orientation bug in Android when unlocking the screen. * Unify RebindFramebuffer, mostly. * Vulkan: Fix bug where shader blend texture overwrote normal texture binding. Fixes #10135 * Update .gitignore for libretro builds. * Fix headless to work better in vulkan mode * Make test.py python3-compatible, print out command lines better. * Vulkan screenshots: Fix R/G swap bug. Thanks unknown. * Make sure the device supports transfers from swapchain images when taking screenshots. * Windows/Vulkan: implement screenshots. Something is iffy with the red/blue swap though... * Vulkan: Dual Src blending strikes again! Disable it on nVidia X1 (Shield TV) due to driver bugs, sigh. * Vulkan: Show the preferred depth-stencil format in the feature list. * Just more accurate feature flags for Vulkan. * Headless: Prevent segfaults with Vulkan. * Headless: Fix crash with null GPU. * Links from the UI: Change from http:// to https:// wherever possible. * Add missing ID for CTTR compat hack. * Fix Memory Leak :D * spaces->underscores:) * Fixes problem switching between non-through triangles and rects. Helps a small part of #6554 * More duplicate code removal * Small changes. Thx [Unknown] * Change KernelTimeNow to KernelTimeNowFormatted and return nice timestamp. * Requested changes. * Blah;p. Buildfix. * Fix linux build. * Add an option to allow resetting video/audio dump on save/load state. * Use gameID and emulated timestamp for Avi/Wav dump filenames. * Fix texture conversion. * Vulkan: Use optimal alignment for texture uploads. May help stutter in #10105 ? * Kill off more unused duplicate code * Oops * Delete unused duplicate functions * Fix annoying little flicker when starting a game. * Vulkan shader view (debug): Add a simple textural representation (incomplete) of pipelines * Vulkan: Make sure to clear the pipeline key to avoid padding bytes causing us to allocate duplicate pipelines. * D3D11: Similarly to the last vulkan commit, don't create lots of dupe vertex input layouts * Vulkan: Fix bug where we ended up creating duplicate pipelines even if vertices decoded to the same format, if they were created from different formats. * DevScreens: In shader viewer tabs, show the number of each shader type. * Unify Execute_Bezier and Execute_Spline * Minor cleanup, fix a comment. * Vulkan: Minor validation error fix * Nitpicking! Correct minor version for non Nvidia. * Win32: Add (debug) to window title in debug builds * Fix driver version display on Vulkan. Enable dualsrc blend on newer AMD drivers. Fixes #10109 * SoftGPU: Oops, fix silly typo. * Vulkan: Remove experimental warning. * Vulkan: Cut down on asserts during init. * TexCache: Add NEON alpha checks for Vulkan. * TexCache: Simplify CheckAlpha funcs and SIMD. * TexCache: Check alpha before scaling. * TexCache: Remove simple 0/1 alpha check. * Vulkan: Avoid checking texture alpha after scale. * Fix bug where readback buffers would be created too small sometimes. Should help #10098 * Vulkan: Tweak stencil value from clears. * Vulkan: When deriving stencilref from color, don't forget to update the value. - Update to version 1.4.2~git20171112: * UI: Typo fix. * Buildfixes for Android * Vulkan: Implement post-processing. The Vulkan backend is now "feature-complete", and GL is now legacy :P * Vulkan: Speed up and simplify hardware tesselation by using storage buffers. * hwtess: Shrink Vulkan UV textures * Make the interface to hw tess slightly more flexible. * Vulkan: Use a device allocator for tesselation data textures. Add comment about better solutions. * Vulkan: Support wide lines if available on the GPU. * Vulkan readback: Resize the readback buffer dynamically as necessary. * SoftGPU: Add a clear mode fast path. * Debugger: Prevent clear while stepping. * SoftGPU: Thread by width for wide polygons. * SoftGPU: Fix crash when stride is 0. * Vulkan hw tess: Assorted minor fixes. Works on Mali now. * Vulkan hw tess: Use pushbuffers instead of temp images to upload data. * Vulkan hw tess: Don't reuse the same dynamic texture for multiple draws, not safe. * Remove unused pointer. * Vulkan: Noticed a framebuffer refcount leak, and changed my mind regarding those :) Let's do it this way instead. * Reduce a ERROR_LOG_REPORT to a warning (vfpu branches in delay slots) * SaveState: Avoid clearing shaders in all backends. * D3D11: Clear input layouts on shader clear. * D3D11: Avoid clearing shaders on load state. * SaveState: Fix use-after-resize iterator. * Vulkan: Enable the "accurate depth" codepath, using the same formula as D3D9. * Android: Cleaner way to avoid double-resizing the backbuffer. * Fix blackscreen when resolution is set to auto. Fixes #10081 * Experimenally disable dual source blending on AMD too for Vulkan, see #10065 * MotoGP: Compat hack to disable framebuffer readbacks. * Buildfix 32-bit * Ditch a silly vertex count limit that only makes sense for GLES, so move it there. * Fix race condition. * Fix a few more device-loss bugs. * Avoid double-initializing the Vulkan backbuffer on startup. * Logging improvements, avoid resetting the Android text drawer unnecessarily * More minor vulkan fixes and cleanups. Don't actually call "Resized" if the size stays the same. * Change Android logging ID from "NativeApp" to "PPSSPP" * More logging and tweaking * Vulkan: Remove duplicate depalShaderCache, fix a number of instances where we didn't use the deleter properly. * Keep the draw context up to date in a bunch of places. More logging. * Vulkan: Improve init/shutdown logging on Android. Fix a bug where we'd not run InitDeviceObjects on GPU_Vulkan sometimes. * Fix some ports * Upgrade glslang to a fresh version (used to compile Vulkan shaders). Might help #10065 ?) * Ooops * Vulkan: Disable dual source blending on Intel GPUs, fixes #10074. * Show textual names of Vulkan GPU vendors * Improve Vulkan device selection mechanism to prefer discrete GPUs * Cleanup gradle output. * Cheats: Fix pointer command count offset. * Cheats: Clamp pointer command data to avail. * Fix 0x6 code types * Vulkan: Apply simple workaround for Mali driver bug (see #10070), and minor cleanup. * Fix some minor things found by running Sizer on PPSSPP * Cheats: Enable for any non-zero number. * Disable lwl/lwr on ARM64 JIT again. Seems b9b2656e9313 broke things, see #10020 * Count readbacks in a frame and show in GPU debug stats. * Cheats: Split parsing and execution. * Try harder to free up memory from the Android native font rendering system. Might help #10069 * Vulkan: If acquiring a frame fails (happens sometimes during window resize), skip swapping the frame. Should help #10063 * Vulkan: Wait for orderly thread stop on resize. * Vulkan: Fix deadlock on resize. * Vulkan: Some error handling improvement. Might get us a clue for #10065 * Vulkan: The validation layers don't like zero-size blits. * Vulkan: Better way to make sure we bind the backbuffer at some point. * Vulkan: Convert depth format on readback. * Vulkan: Show textures in GE debugger. * Vulkan: Add texture image readback. * Vulkan: Fix non-16 bit indexed drawing. * Vulkan: Allow clearing the backbuffer to any color. * D3D11: Show FBO-as-texture in GE debugger. * TexCache: Warning fix. * Use W^X on OpenBSD. * Don't use "threadsafe events" for Ge stuff. * Vulkan: Fix leak in WipeQueue(). * Turn on multithreaded vulkan * Remove/deprecate GPU tick sync * Get rid of GPUCommon's "Internal" functions. * Delete ProcessEvent and the GPUEvent enum * Delete GPUCommon::ScheduleEvent * Get rid of a bunch of sync stuff that's no longer needed. * Get rid of the sync around curTickEst * Delete the mutex in GPUCommon. * Vulkan: Fix framebuffer leak. * Remove the setting to run the display list interpreter on a separate thread. * Vulkan: Correct logicop dirtying. * Vulkan multithread: Fix race condition. * TexCache: Detect textures in FBO gutters. * GPU: Properly Release() FBOs. * SaveState: Correct free on error and uncomp format. * SaveState: Use malloc to avoid Android OOM crash. * Vulkan: Make sure backbuffer is bound for UI. * Vulkan: Resignal unexecuted fences on thread stop. * Vulkan: Wait for queue idle in DestroyBackbuffers. * GPU: Restore initial readback on output. * Vulkan: Refcount framebuffer deletes. * Vulkan: Account inside frame from push side. * Add missing Google Maven repository * Buildfix again. Should fix #10046 this time. * Unify a little bit of depal code. * Vulkan: Fix bug in depal causing Sonic Rivals to be grayscale. * Minor depal state dirtying fix * Add <cmath> include. Will hopefully help #10046 * Cleanups and fixes around Vulkan stencil upload. thx unknown * Should be bufferWidth here, not width. Thanks unknown. * Vulkan: Fix a comment. * Vulkan: Allow sync when using threading. * Vulkan: Fix out-of-sync frames on threading. * Vulkan: Trigger condvar only at frame end. * Vulkan: Fix segfault on swapchain fail. * Fix issue in framebuffer size calculation when viewport is bogus in through mode. Fixes #10043. * Tiny cleanups. * Vulkan: Minor fixes. * Stop leaking framebuffers on shutdown. Fix other shutdown issues. * Minor optimization. * Remove some code duplication * Vulkan: Implement stencil upload (for Star Ocean). OBS-URL: https://build.opensuse.org/request/show/542857 OBS-URL: https://build.opensuse.org/package/show/Emulators/ppsspp?expand=0&rev=19
2017-11-24 10:03:20 +01:00
Version: 1.4.2~git20171118
Release: 0
Summary: PlayStation Portable Emulator
License: GPL-2.0+
Group: System/Emulators/Other
Url: http://www.ppsspp.org
Source: %{name}-%{version}.tar.xz
BuildRequires: gcc-c++
BuildRequires: cmake >= 3.3.2
BuildRequires: Mesa-devel
BuildRequires: libzip-devel
BuildRequires: snappy-devel
BuildRequires: unzip
BuildRequires: fdupes
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(libpng)
#Qt deps:
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5OpenGL)
#ffmpeg deps: (Restore once https://github.com/hrydgard/ppsspp/issues/9026 is closed)
#BuildRequires: pkgconfig(libavcodec)
#BuildRequires: pkgconfig(libswscale)
#BuildRequires: pkgconfig(libavformat)
#BuildRequires: pkgconfig(libavutil)
#BuildRequires: pkgconfig(libavdevice)
#BuildRequires: pkgconfig(libavfilter)
#BuildRequires: pkgconfig(libpostproc)
#BuildRequires: pkgconfig(libswresample)
#Desktop icon deps
BuildRequires: update-desktop-files
Requires(post): hicolor-icon-theme
Requires(postun): hicolor-icon-theme
Requires: %{name}-common
%description
PPSSPP is a PSP emulator written in C++, and translates PSP CPU instructions directly into optimized x86, x64 and ARM machine code, using JIT recompilers (dynarecs).
%package qt
Summary: PPSSPP Qt backend
Group: System/Emulators/Other
Requires: %{name}-common
%description qt
PPSSPP build using the Qt framework
%package common
Summary: PPSSPP assets
Group: System/Emulators/Other
%description common
Required assets for PPSSPP GUI
%prep
%setup -q
sed -i 's|cmake_minimum_required(VERSION 3.6)|cmake_minimum_required(VERSION 3.3.2)|g' CMakeLists.txt
echo "// This is a generated file.
const char *PPSSPP_GIT_VERSION = \"%{version}\";
// If you don't want this file to update/recompile, change to 1.
#define PPSSPP_GIT_VERSION_NO_UPDATE 1
" > git-version.cpp
%build
#Restore -DUSE_SYSTEM_FFMPEG="ON" \ once ffmpeg bug is fixed upstream
mkdir build-qt
cd build-qt
cmake .. \
-DUSE_FFMPEG="ON" \
-DUSING_QT_UI="ON" \
-DCMAKE_C_FLAGS="%optflags" \
-DCMAKE_CXX_FLAGS="%optflags" \
-DCMAKE_BUILD_TYPE="Release|RelWithDebugInfo" \
-DCMAKE_SKIP_RPATH="YES"
%make_jobs
mkdir ../build
cd ../build
cmake .. \
-DUSE_FFMPEG="ON" \
-DCMAKE_C_FLAGS="%optflags" \
-DCMAKE_CXX_FLAGS="%optflags" \
-DCMAKE_BUILD_TYPE="Release|RelWithDebugInfo" \
-DCMAKE_SKIP_RPATH="YES"
%make_jobs
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_libexecdir}/%{name}
#setup wrapper(s)
cat > %{buildroot}%{_bindir}/%{name}-qt << 'EOF'
#!/bin/sh
exec %{_libexecdir}/%{name}/%{name}-qt "$@"
EOF
cat > %{buildroot}%{_bindir}/%{name} << 'EOF'
#!/bin/sh
exec %{_libexecdir}/%{name}/%{name} "$@"
EOF
#install files
install -m 755 -D build-qt/PPSSPPQt %{buildroot}%{_libexecdir}/%{name}/%{name}-qt
install -m 755 -D build/PPSSPPSDL %{buildroot}%{_libexecdir}/%{name}/%{name}
mv assets %{buildroot}%{_libexecdir}/%{name}/
mkdir -p %{buildroot}%{_datadir}/pixmaps
install -m 444 -D icons/icon.svg %{buildroot}%{_datadir}/pixmaps/%{name}.svg
%suse_update_desktop_file -c %{name} PPSSPP 'PSP Emulator' %{name} %{name} System Emulator
%suse_update_desktop_file -c %{name}-qt PPSSPPQt 'PSP Emulator' %{name}-qt %{name} System Emulator
%fdupes %{buildroot}
%check
%ctest
%post
%desktop_database_post
%icon_theme_cache_post
%postun
%desktop_database_postun
%icon_theme_cache_postun
%files qt
%defattr(-,root,root)
%attr(755, root, root) %{_bindir}/%{name}-qt
%{_libexecdir}/%{name}/%{name}-qt
%{_datadir}/applications/%{name}-qt.desktop
%files common
%defattr(-,root,root)
#Fix SLE_12_SP2 and LEAP 42.1 builds
%if 0%{?sle_version} <= 120200 && 0%{?suse_version} <= 1320
%doc README.md LICENSE.TXT
%else
%doc README.md
%license LICENSE.TXT
%endif
%{_libexecdir}/%{name}/assets
%{_datadir}/pixmaps/%{name}.svg
%files
%defattr(-,root,root)
%dir %{_libexecdir}/%{name}
%attr(755, root, root) %{_bindir}/%{name}
%{_libexecdir}/%{name}/%{name}
%{_datadir}/applications/%{name}.desktop
%changelog