SHA256
1
0
forked from pool/rpcs3
rpcs3/rpcs3.spec
Klaus Kämpf 33946b5fdf Accepting request 555033 from home:xenonpk
- 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
2017-12-07 13:56:40 +00:00

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