forked from pool/rpcs3
33946b5fdf
- Replace rpcs3-unbreak_build.patch with more flexible sed regex - Update to version 0.0.4~git20171206: * rsx: Narrow the race condition window further - Needs aliased paging to be implemented to fix properly or a re-entrant global IO lock * rsx: Framebuffer setup fix - Stencil flag is meaningless if surface does not support stencil * rsx: Reimplement invalidate_range_base_impl - Avoid unprotecting memory until just before we have to write the data - Avoids race conditions where the caller thread takes too long to enter the second phase and another thread accesses the "bad" memory - Update to version 0.0.4~git20171205: * savedata: avoid passing vm memory to fs::file * Qt: implement compatibility column - Update to version 0.0.4~git20171204: * rsx: Properly fix DATA3F_M register alignment * rsx/vp: Decide default return values in case of undefined attributes based on location ID - Different default values should be returned for different attributes * rsx: Program cache fixes - Reorganize storage hash vs ucode hash - Scan for actual fragment program start in case leading NOPed code precedes the actual instructions -- e.g FEAR2 Demo has over 32k of padding before actual program code that messes up hashes * d3d12: Fix fragment shader compile * rsx:: fixes for framebuffer setup - provide a DSV if depth and/or stencil testing is enabled * rsx/fp: Explicitly insert global functions. - Functions such as pack/unpack ops must exist before the shared gather functions are declared - Update to version 0.0.4~git20171202: * sys_net: Force AF_INET * Input: handle MMJOY reconnection (pad still needs to be online on start) * Input: improve evdev and mmjoy stick input * Qt: Fix SettingsDialog crash introduced by removal of groupboxes * Input: Fix filter button for evdev and DS4 * Input/MMJOY: handle Axis and POV capabilities * gl/vk: Better handling of inter-format data copies - RGBA8->RG16 does not require special instructions so the overlay pass is disabled for OGL * rsx/fp: Properly implement PK/UP instructions based on NV_fragment_program documentation * gl: Implement rgba8 -> fp16 casting pass -- Is this actually necessary? The two format are binary compatible * rsx/fp: Implement register gather (only for UP(X) instructions) - Workaround for temp register aliasing between H and R variants - TODO: Implement temp regs as 128 bit-blocks with r/w as pack/unpack * vulkan: Do not clear non-existent surfaces * rsx/fp: Reimplement PK(X) and UP(X) opcodes. The read back values are obviously in normalized range - Confirmed with a GOW shader which writes result of UP8 to BGRA8 output * rsx: wcb scaling fixes * gl: Minor wcb tweaks * rsx: Fix texture cache memory usage statistics * rsx: method register fixes - Fix VERTEX_DATA_3F_M element alignment (its 16 bytes per attribute) - Fix DATA_2S_X interpretation type. Its signed 16-bit unnormalized (s32k) and not signed normalized (s1) * rsx: Discard queue if RET is found without CALL * rsx: Changes to surface pitch handling - Zeta pitch is ignored by real HW for some reason - Monitor ptch value changes as well since they may affect disabled surfaces - TODO: Verify if MRT pitch is really taken into consideration * vk: Compliance fixes; vkCmd state affects currently bound descriptor set! * rsx: Fixes for framebuffer setup code * rsx: Fixes - Discard intentionally invalidated framebuffer resources. These are created after a flush has happened, forcing reupload since contents cannot be guaranteed (strict mode only) - Fix for blits using vulkan; dont use the copy method if formats do not match, use generic blit instead * rsx: Texture cache hotfixes * gl: Avoid null deref * rsx/fp: Do not apply input mods to all types of inputs - Temp registers are confirmed to be affected - Const registers are confirmed to be unaffected - Varying inputs are not confirmed yet * rsx: More tuning for depth/color buffer selection * rsx: improve depth/color contested memory allocation heuristics - Needs more tests to prove correct behaviour * gl: Fix face winding - Face winding is always calculated based off the top left corner * rsx: Reimplement depth <-> RGBA reinterpretation code - Implements proper channel order for fp24-ARGB8 conversion - Takes swizzle remap into account when reconstructing source bytes * fp32 precision on GPUs is embarassing - Division seems to suffer from drift easily on GPUs due to limited precision * vulkan: Implement overlay shader passes - Implements vk::overlay_pass and vk::depth_convert_pass - Also added a sanity check in RSX core for depth replace shaders * rsx: Zcull refactoring and vulkan implementation * vk: Dont always assume framebuffers exist - TODO: Use temporary renderbuffers for these outputs * rsx/gl: Use strict method of gathering the depth buffer bits - Performance difference on modern GPUs is negligible * rsx: Try to take the context for the surface creation into account * rsx: Improve framebuffer check heuristics for contested memory buffers * rsx: Major fixes - Handle aliased depth + color target by disabling depth writes. This looks to be the correct way - Add support for generic passes that cannot be done using general imaging operations. Lays the framework for tons of features and effects - Implement RGBA->D24D8 casting. Sometimes games will split depth texture into RGBA8 then use the new RGBA8 as a depth texture directly -- This happens alot in ps3 games and I'm not sure why. Its likely the ps3 did not sample fp values with linear filtering so this is a workaround -- Only implemented for openGL at the moment -- Requires a workaround for an AMD driver bug * rsx: Add more validation to framebuffer setups. Game devs sometimes do crazy things * rsx: Minor improvements * rsx: Invalidate both depth and color surfaces when binding a new surface * spu: Fix interrupt jump check - also change interrupt variable to atomic bool for ease of setting/checking * mfc: Fix support for list transfer stall bit with partial support for out of order execution - Also give Sync commands a size so they are properly detected by queue checks * spu: Recompiler Interrupt optimizations - Pigeonhole optimize for branching pattern that is used to enable and disable interrupts used in code, this should lower amount of blocks that are compiled and avoid falling out of a block - Recompiled interupt check in some cases to stay in block instead of falling out to dispatcher * spu: Implement DFCMGT for interpreter and recompiler * sys_memory: Lower maximum size for memory block to fake OS size - Report available memory minus another fake block that can be used for the OS - Update to version 0.0.4~git20171130: * Silence warnings in misc files (gui, psp2, mfc, mouse) * silence warnings in RSX stuff * Silence warnings in lv2/Modules * Silence some warnings in some files in Utilities * Qt/Input: implement blacklist to Filter Noise in pad dialog * Input/MMJOY: use provided min and max. Move info and caps to MMJOYDevice * Qt/Input: Remove unsupported groupboxes from pad dialog and shorten text * Qt/Input: disable config button when device combobox is empty - Update to version 0.0.4~git20171130: * Quick fix to prevent Qt download timeout (#3809) * SPU MFC: Clamp tag and size (#3803) * Qt/Input: Implement GetModifierCode to improve keyevents * Qt/Input: disable TabFocus while mapping buttons in order to map Tab key * Input: MMJOY prioritize button presses due to constant axis events * Input: Fallback in FindKeyCode to prevent crashes on incompatible config * Added installation for additional packages to game boot * Update Qt to 5.9.3 * Input: fix MMJOY a bit * Input: fix currentText of device combobox * Input: Fix Default XInput LB * [Qt/Input] Improve pad_settings_dialog a bit (#3611) * Change sys_usbd_receive_event * RSX: fix fix (406E semaphore release) * Fix log limit * Qt: implement progress_dialog * Qt: remove some warnings * Avoid recreating SwsContext every frame * CMake minor improvements (#3783) * Qt: change settingsdialog to horizontal layout - Update to version 0.0.4~git20171126: * RSX: improve nv406e::semaphore_release * Fix exitspawn (autoexit option) * Clamp utime range (Wnd) * Update Fedora packages in the README file * cmake: remove unused link to ffmpeg libswresample * cmake: check if ffmpeg libswscale is present * Use Qt for error reports * Fix free space check (Wnd) * PKG installer update for DLC * Add libpulse-dev to README.md * Log: minor improvements * Log sys_fs_utime values * Revert ERROR_INVALID_PARAMETERS * Restore log compression * New logging strategy * Log: improve messages for multiple RPCS3 instances * Implement fs::unshare (linux) * Fix cellGameBootCheck for disc games (#3771) * Check sys_spu_thread_group_create's nsize (#3742) * Trophy: Save dialog state (#3729) * Fix "Exit RPCS3 when process finishes" command line crash * Fixes from FreeBSD package (#3765) * Handle Win32 error 87 ERROR_INVALID_PARAMETER with fs::error::inval * Fix regressions caused by network code. (#3702) * vk: Reset renderer status whenever a window geometry event is processed * rsx/fp: Give abs higher prio as it invalidates any precision checks * rsx/fp: improve SRC modifier order - Neg modifier is applied after clamping. Abs has not been tested/proven so precision clamp goes first now, not last * rsx/fp: RE work on precision modifier bits - Testing DS2 has revealed clamping bits in SRC1 that were not respected and left negative values reaching the framebuffer * rsx: Abort all drawing commands if no swapchain exists - Should keep nvidia from consuming all device memory when minimized * rsx: Enable hw blit engine for local->main memory blit operations as well * rsx: research native texel byte order on cpu readback (WCB) [WIP] * Qt: move "Disable Vertex Cache" option back to gpu tab * Updates ReadMe for Windows (#3713) * Qt: Use global Appicon instead of setting it in every Dialog * Fix set thread affinity on OS X (#3757) * Initial work on sys_usbd syscalls * AppVeyor Qt fix * Use zeux/pugixml instead of RPCS3/pugixml OBS-URL: https://build.opensuse.org/request/show/555033 OBS-URL: https://build.opensuse.org/package/show/Emulators/rpcs3?expand=0&rev=12
125 lines
3.3 KiB
RPMSpec
125 lines
3.3 KiB
RPMSpec
#
|
|
# spec file for package RPCS3
|
|
#
|
|
# 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: rpcs3
|
|
Version: 0.0.4~git20171206
|
|
Release: 0
|
|
Summary: PS3 emulator/debugger
|
|
License: GPL-2.0
|
|
Url: https://rpcs3.net/
|
|
Source0: %{name}-%{version}.tar.xz
|
|
ExclusiveArch: x86_64
|
|
|
|
#BuildRequires: gcc-c++
|
|
BuildRequires: clang
|
|
|
|
BuildRequires: cmake
|
|
BuildRequires: pkgconfig(glew)
|
|
BuildRequires: pkgconfig(glu)
|
|
BuildRequires: pkgconfig(libpng)
|
|
BuildRequires: pkgconfig(openal)
|
|
BuildRequires: pkgconfig(alsa)
|
|
BuildRequires: pkgconfig(libpulse-simple)
|
|
BuildRequires: pkgconfig(libevdev)
|
|
BuildRequires: pkgconfig(yaml-cpp)
|
|
BuildRequires: pkgconfig(libudev)
|
|
BuildRequires: vulkan-devel
|
|
BuildRequires: -post-build-checks
|
|
|
|
#ffmpeg deps
|
|
BuildRequires: pkgconfig(libavcodec)
|
|
BuildRequires: pkgconfig(libswscale)
|
|
BuildRequires: pkgconfig(libavformat)
|
|
|
|
#qt deps
|
|
BuildRequires: pkgconfig(Qt5Core)
|
|
BuildRequires: pkgconfig(Qt5Widgets)
|
|
BuildRequires: pkgconfig(Qt5DBus)
|
|
BuildRequires: pkgconfig(Qt5Network)
|
|
|
|
#LLVM deps
|
|
BuildRequires: llvm-devel
|
|
BuildRequires: libLLVM4
|
|
|
|
|
|
Requires(post): hicolor-icon-theme
|
|
Requires(postun): hicolor-icon-theme
|
|
Requires(post): update-desktop-files
|
|
Requires(postun): update-desktop-files
|
|
|
|
%description
|
|
An open-source PlayStation 3 emulator/debugger written in C++.
|
|
|
|
%prep
|
|
%setup -q
|
|
#Force Link with shared LLVM libs
|
|
sed -i 's|llvm_map_components_to_libnames(LLVM_LIBS .*)|set(LLVM_LIBS LLVM)|g' rpcs3/CMakeLists.txt
|
|
|
|
#Generate Version Strings
|
|
GIT_VERSION=$(echo %{version} | sed 's|.*git|git~|g')
|
|
|
|
echo "// This is a generated file.
|
|
|
|
#define RPCS3_GIT_VERSION \"$GIT_VERSION\"
|
|
#define RPCS3_GIT_BRANCH \"master\"
|
|
|
|
// If you don't want this file to update/recompile, change to 1.
|
|
|
|
#define RPCS3_GIT_VERSION_NO_UPDATE 1
|
|
" > rpcs3/git-version.h
|
|
|
|
%build
|
|
cmake . \
|
|
-DUSE_SYSTEM_FFMPEG="ON" \
|
|
-DUSE_SYSTEM_LIBPNG="ON" \
|
|
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
|
|
-DCMAKE_INSTALL_LIBEXEC="%{_libexecdir}" \
|
|
-DCMAKE_C_COMPILER=%{_bindir}/clang \
|
|
-DCMAKE_CXX_COMPILER=%{_bindir}/clang++ \
|
|
-DCMAKE_C_FLAGS="%{optflags}" \
|
|
-DCMAKE_CXX_FLAGS="%{optflags}" \
|
|
-DCMAKE_BUILD_TYPE="RelWithDebInfo" \
|
|
-DCMAKE_SKIP_RPATH="YES" \
|
|
-DUSE_SHARED_LLVM_LIBS=ON \
|
|
-DCMAKE_EXE_LINKER_FLAGS="$(llvm-config --libs llvm)"
|
|
|
|
%make_jobs
|
|
|
|
%post
|
|
%desktop_database_post
|
|
%icon_theme_cache_post
|
|
|
|
%postun
|
|
%desktop_database_postun
|
|
%icon_theme_cache_postun
|
|
|
|
%install
|
|
%make_install
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc README.md
|
|
%license LICENSE
|
|
|
|
%{_bindir}/%{name}
|
|
%{_datadir}/applications/%{name}.desktop
|
|
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
|
|
%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
|
|
|
|
%changelog
|