[新闻] RPCS3 v0.0.3 Alpha

楼主: choan (八房龙之助)   2017-07-27 00:26:09
https://github.com/RPCS3/rpcs3/releases
https://rpcs3.net/download
PPU
– Fixed instructions FCTIW, FCTID, FCTIWZ, FCTIDZ, MULLW, DIVD, DIVDU, DIVW,
DIVWU, MULHW;
– Removed HACK instruction;
– Updated VREFP, VRSQRTEFP instructions;
– Optimized MTOCRF instruction;
– Analyser: TOC detection logic improved;
– Analyser: Several bugfixes;
– Opcodes: Added RLDICR, STFD, STVX, LFD, LVX, CLRRDI;
– Debug Mode Implemented;
– Interpreter Precise: SAT bit implemented;
– Recompiler updated from LLVM 3.8 to LLVM 4.0;
– Recompiler: Implemented STSWI, LSWI;
– Recompiler: compiles only one block at time, uses tail calls to move
between blocks and fully writes PPU context, except CIA;
– Recompiler: Implemented multi-threaded compilation;
– Recompiler: Optimized MFCR;
– Recompiler: Improved FlushRegisters;
– Recompiler: Disabled some LLVM passes;
– Recompiler: SSA reordering (Fetches indirect jump target, flushes
registers earlier);
– Recompiler: Relocation support;
– Patch engine for PPU executables implemented.
SPU
– Speedboost: Lower SPU priority and Bind SPU threads to secondary cores
added (prevents PPU threads from being starved, Windows-only for now);
– Interpreter: Fix isdenormal, Fix MFC_WrTagUpdate;
– Disable SPUJIT.log by default;
– Patch engine for SPU images implemented;
– SPU Recompiler: Updated ASMJIT submodule, adding 1 year worth of fixes
from upstream;
– Checks exponent bits in FMA ops: Modifies the result of SPU FMA if
exponents in a or b are at max and discards the value. This is by no means
even close to accurate handling of corner cases in the SPU, but rather a
fast workaround;
Discards the result of (a * b) if either a or b has extended exp bits
(usually inf) without degrading performance too much.;
– Properly implement FCGT and FCMGT SPU opcodes;
– Minor tweaks to SPU wait loops and DMA transfers to improve stalling
behavior;
– ASMJIT Recompiler: Avoid aggressively locking the asmjit db and make
compilation step multi-threaded. It takes a much shorter time to compile a
function than it does to wait on a lock especially with non-spurs-type
kernels;
– ASMJIT Recompiler: Cache compiled functions and avoid calling database
analyze function when not needed;
– Add loop condition detection by triggering an OS scheduler update on RdDec
- this function can only be sensibly used as part of a loop. [Disabled by
default for now];
– Add concurrent execution analysis. This only affects spurs-type kernels
where multiple threads are executing the exact same code at the exact same
time. Introduces a small delay to racing threads so that they are
effectively desynchronized whenever they enter a sensitive function.
[Disabled by default].
Core
– Fixes to SPRX Relocation;
– Removed throw cpu_flag;
– Auto load LLE improvements: added libdtslbrdec, libssl, libhttp, libfs,
various encoders;
– Implemented sys_ppu_thread_register_atexit, strncasecmp, strrchr;
– Configuration code simplified;
– LV2 Load: Don't LLE savedata modules, preventsbroken saves;
– Enhancements to VirtualMemory;
– Implemented FREFS/Weak Imports;
– Implemented REF 4, REF 6 and REF 57;
– Fixed hex_to_bytes;
– Added ror8/16/32;
– Added moving disc games to outside of /dev_hdd0/game on boot if they're
there;
– Fixes to dev_bdvd mounting;
– cellSaveData: Only return data for dir and bind where requested;
– Reduce watchdog memory footprint by using the segment address as a base +
256K;
– Check AVX for Intel processors;
– Use RTM instructions when available.
HLE
– HLE linkage rewritten;
– Fixes for module initialization;
– Improvements to cellSave, sceNpTrophy and cellVdec modules;
– Big improvements to sys_fs;
– Rewritten sys_spu_image loading and sys_ppu_thread_once;
– Implemented _sys_sprintf, cellHddGameGetSizeKB, cellGameDataGetSizeKB,
cellGameGetSizeKB, cellPadGetDataExtra, cellPadPeriphGetData,
cellHttpUtilParseUri, sys_fs_disk_free;
– Fixed cellGameContentErrorDialog, cellPadGetData,
sceNpTrophyGetRequiredDiskSpace, sceNpBasicGetEvent;
– Fixed max_connect on cellKbInit and cellMouseInit;
– cellVideoOut: Add 59.94 Hz support required by some games;
– Registered many unknown new modules/functions such as sys_lv2coredump,
sys_crashdump, cellDaisy.
RSX
– Workaround for src type 3 as we gather more information;
– Workaround for invalid/unknown methods;
– Fix TXP when performed on a cubemap texture;
– Do not always assume a tex variable exists when doing alphakill checks
(Variable may have been optimized away).
– Adds in support for immediate mode rendering between begin/end command
pairs;
– Fixes missing draw calls in most homebew games;
– Clamp mipmap count to always > 0;
– Throw if user attempts to use Vulkan/DX12 without driver support;
– Re-implements vertex shader output control; adding in options for more
complex conditions;
– Added a workaround for intel drivers which don't report their capabilities
via extensions for some reason;
– Include strict vertex shader output declaration for compatibility with
mesa drivers which are very strict;
– Rewrites vertex upload, removing the slower methods used before. The old
code is improved as well and kept around for debugging until its state is
known to be mature enough (performance is up anywhere from 10-300% for
geometry heavy scenes);
– Lifts some restrictions on vertex register formats and adds a fix for
register type data uploads when using a vertex buffer stream;
– Fix BRK/RET fp instruction;
– Image clipping fixes. Fixes software mode clipping in nv3089::image_in.
Fixes cropped graphics in some games.
– Fix stencil clear values;
– Fix some buffer misalignment crashes when using debuggers or faulty
drivers;
– Fix OpenGL clip space conversion (Z symmetry);
– Add a workaround to fix shadow map generation;
– Add hardware PCF shadow support;
– Fix stencil buffer reset;
– Remove several hundred compilation warnings from RSX code;
– Improve SPIRV compilation speed by avoiding unnecessary SH context
(re)creation;
– Register NV4097_SET_COLOR_KEY_COLOR method;
– Fix index buffer generation when using a non-zero base offset;
– Added a toggle to ensure strict rendering mode. Currently only affects
framebuffer feedback loops. When disabled, we ignore the feedback loop in
Vulkan and issue a texture barrier in ogl. When enabled, a duplicate texture
is created to ensure this is not an issue but there is a tangible
performance penalty (Defaults to OFF).;
– Fix a regression when emulating index buffers for generated primitives.
Removes the 'first' parameter since rpcs3 does not support disjoint vertex
ranges at the moment anyway;
– Added a 'speed hack' - not really a hack - for games that share memory
regions between textures and other GPU resources such as shaders.
Significantly boosts performance in games where the cache is invalidated
often. Can be disabled by setting 'Strict Rendering Mode' to true;
– Small to moderate speedup on games with many draw calls due to some minor
tweaks to c++ object management;
– Implement frame skipping (config file option only for now);
– WIP: Batch together draw calls using the same geometry with different
translation matrices;
– Allow multi-threaded vertex processing;
– Fixed some fragment shader instructions;
– Implement RSX framebuffer memory persistence;
– Avoid aggressive resource create/delete cycles when using Vulkan. Moderate
speedup in some games and fixes flickering in some cases;
– Fix an RSX crash when a null address is provided for the fragment shader
location;
– Improved multithreaded vertex processing so that the penalty is much lower
if there are no resources available. Its also tunable now allowing the
threshold to be set.
OpenGL
– Actually bind a stencil attachment on FBO creation;
– Implement glArrayElement indexing scheme;
– Force align DXT compressed textures to block_edge size;
– Fix legacy clamp mode: The meaning of texture border has changed starting
with GL 3+ due to the resulting confusion from broken and incomplete
implementations on hardware of the GL 1.x era. As such, legacy clamp is
closer to the modern edge clamp than border clamp as it once was. Border
pixels in textures are not supported on newer hardware and never truly
worked in the past either, especially on NV cards. Should hopefully fix any
games showing visible grid lines in OpenGL;
– Implements texture blitting and scaling using the GPU to avoid texture
readback whenever possible;
– Use sampler objects instead of binding sampler state to texture handles;
– Adds some simple driver capabilities checks to determine if the driver can
run the emulator or if we need to disable some features. Also adds in other
fallback paths;
– Fix for the mix-and-match nature of ps3 shaders causing issues with mesa's
linker;
– Minor typo fix affecting intel GPUs with OGL;
– Fix a rare OpenGL crash when trying to capture traces with renderdoc;
– A minor behavior fix for OpenGL when strict mode is not enabled. Makes
behaviour alot more reliable to debug now;
– Added Stretch to Display area as an optional setting.
Vulkan
– Silence useless error on vk::program destructor;
– Fix stencil clear value on Vulkan;
– Fixes gsl::span errors with Vulkan as well as not throwing an exception if
an attribute/texture is enabled, but not active in the shader;
– Added a fix for LINE_LOOP rendering using Vulkan;
– Re-enable layout transitions in Vulkan: Image layout transitions were
disabled at some point during code refactoring. The impact on Nvidia drivers
is not too bad, but horrible moire artefacts appear on AMD, especially newer
cards;
– Lay foundation for GPU scaling implementation;
– Implements synchronized framebuffer r/w for Vulkan. Still missing some
important pieces such as hw accelerated image_in, but that will get merged
in later;
– Minor fixes for broken contexts on unsupported devices;
– Fix a few Vulkan API spec violations. Fixes a free-during-use on a leaky
handle when the debug overlay is enabled. Also clips clear rects to always
fit within the current render target;
– Monitor buffer usage to prevent running out of working space on Vulkan.
Also reorganizes some of the buffer init process on Vulkan;
– Fix a rare Vulkan shader compiler bug;
– Adds 'add_signed' in blend ops;
– Added Stretch to Display area as an optional setting;
– Fix Vulkan layout transitions;
– Fix a Vulkan crash about undeclared fog_c. Also fixes default parameter
initialization that should fix some games that have broken graphics with
Vulkan but work fine with OpenGL.
D3D12
– Lay foundation for GPU scaling implementation;
– Adds in a very old bugfix that makes D3D12 crash properly instead of
throwing a cryptic range error. This DOES NOT fix D3D12 crashing, merely
generates a more useful fatal error message.
Crypto
– Fix SPRX/SELF check in npDrm;
– EDAT fixes;
– C00 SPRX Loading fixed.
Input
– Implemented Native DualShock 4 Support;
– XInput/MMJoystick: Fix connection status;
– XInput: Vibration support;
– DualShock 4: Use controller calibration values for accel/gyro.
Audio
– Added Downmix to Stereo option.
Linux
– Mutexes fixed (cause of constant freezes);
– Added installation;
– Initial support for Linux AppImages;
– Reimplemented Vulkan Render on Linux;
– Implemented low-latency ALSA Audio Renderer for Linux;
– Added compatibility with mesa drivers;
– Fixed LLVM compatibility on Linux with gallium based drivers (mesa):
llvm_map_components_to_libnames provides a list of static libraries to link
our target to. Unfortunately, on linux, this causes llvm to be initialized
once on program launch and then when any component loads shared llvm, e.g
mesa resulting in the "inconsistent commandline options" error. This changed
links against dynamic llvm library when compiling on linux;
– Added instructions and support for Fedora;
– Enable optimizations on TravisCI.
BSD
– Improved portability for BSDs.
GUI
– Icon updated;
– GUI rewrite: Replaced wxWidgets 3.1 with Qt 5.7;
– GUI Redesigned;
– Added Grid View;
– Added Tiny, Small and Huge Sizes;
– Added Welcome Screen;
– Debugger is now hidden by default;
– DPI Scaling issues fixed;
– Re-implemented VFS manager;
– Re-organized the graphics options tab a bit to separate main options from
debugging options;
– Improved Debugger and Disassembly;
– Improved Categories in Gamelist;
– Added stacking option for same log messages to log contextmenu;
– Added sort indicator to Gamelist;
– Added background color to icons for better readability;
– Added default layout for better looks on first start;
– Added Resolution, Sound Format and Parental Level columns to Gamelist;
– Added Save Manager;
– Added tooltips and descriptions to Settings;
– Check system for SSSE3 presence and throw error message when opening the
emulator;
– Added Toolbar Icon Color Picker;
– Added Game window resize on boot.
作者: paint (有斑纹的马)   2017-07-27 12:21:00
近期最期待的模拟器
作者: a83a83cjcj (马马虎虎)   2017-07-27 16:19:00
这个进展好快啊

Links booklink

Contact Us: admin [ a t ] ucptt.com