kd-11
d8e45c86e6
vk: Remove old useless hack that interferes with memory inheritance
2019-01-06 10:44:40 +03:00
kd-11
3be4b474d9
rsx: Handle rsx-self-tripping in draw call and triggering invalid invalidation
...
- If draw call resources consume memory that intersects with NA parts of the texture cache, we get a framebuffer test mismatch.
This mismatch is false and happens because the thread has not yet reached the point of relocking the pages
2019-01-06 10:44:40 +03:00
kd-11
a95a44cf66
rsx: Strictness cleanups
...
- Also account for variable pitch textures (swizzled scan)
2019-01-06 10:44:40 +03:00
kd-11
474d0f61a2
minor typo fix
2019-01-06 10:44:40 +03:00
kd-11
362eea09a1
whitespace fix only
2019-01-06 10:44:40 +03:00
kd-11
15d5507154
rsx: Rewrite memory inheritance transfers
...
- Implicitly invoke a memory barrier if actively reading from an unsynchronized texture
- Simplify memory transfer operations
- Should allow more games to work without strict mode
2019-01-06 10:44:40 +03:00
kd-11
97704d1396
rsx: Fix texture size calculations
2019-01-06 10:44:40 +03:00
kd-11
50c07833e4
rsx: Do not force upload for missing data
...
- TODO: Finish implementing GPU RCB for mem-sync
- TODO: Refactor mem-sync
2019-01-06 10:44:40 +03:00
kd-11
6d932b042b
vk: bump max number of compute jobs from 120 to 1024
...
- It is possible without bugs to have a very high number of compute invocations.
2019-01-06 10:44:40 +03:00
kd-11
64a8829614
rsx: Minor cleanup
2019-01-06 10:44:40 +03:00
kd-11
15488eb247
rsx: Avoid unnecessarily touching framebuffer memory
...
- Do not bind companion framebuffer when clearing single aspect; let the
contest mechanism sort it out instead
- Do not prematurely tag framebuffers, instead only do so at
write-confirmation time. Should avoid false tagging if setup does not
allow a render to occur.
2019-01-06 10:44:40 +03:00
kd-11
a13986ec5c
vk: Spec fixups
...
- Forgot to update descriptor pool init sizes over time
- Also clamp swapchain resources to allowable surface extents
2019-01-05 21:31:12 +03:00
Megamouse
bb464b0b64
fix some warnings
2019-01-05 04:03:18 +01:00
Megamouse
6f7b25de90
implement CELL_PAD_INFO_INTERCEPTED
2019-01-02 15:45:51 +01:00
Megamouse
8ad14c4ada
Overlays: fix input loop when no controllers are detected
2019-01-02 15:45:51 +01:00
eladash
db784556aa
rsx: Evaluate cond render test at set_render_enabled
2018-12-30 15:04:59 +01:00
eladash
568206d11a
Fix rsx capture (again)
2018-12-30 15:04:59 +01:00
Jan Beich
8d308bb4c0
overlays: don't use /proc on BSDs as it may not be mounted
2018-12-29 18:07:45 +03:00
kd-11
9c46386dd4
rsx: Check av configuration when selecting display buffers!
...
- Some applications have mismatch between video output configuration and display buffer sizes
2018-12-24 09:05:19 +03:00
kd-11
7555be232f
rsx/vp: Fix double dst commands
...
- Test the vec_result mask before assigning to actual output
Sometimes, VEC op is used to write to Rx, and SCA op is used to write to o[x]!
2018-12-24 09:05:19 +03:00
kd-11
10d96a60f1
rsx/capture: Force flip if no flip event was recorded
2018-12-24 09:05:19 +03:00
kd-11
f48abde14b
rsx: Fixups for immediate rendering mode
...
- Immediate mode is isolated from the rest of the vertex configuration
- TODO: Verify register behaviour when immediate mode is used
Check if per-primitive const register values are supported (likely are)
2018-12-24 09:05:19 +03:00
kd-11
4b79ef1ad9
rsx: Implement stencil mirror views
...
- Implements a mirror view of D24S8 data that accesses the stencil components.
Finishes the implementation of TEX2D_DEPTH_RGBA as the stencil component was previously missing from the reconstructed data
- Add a few missing destructors
Image classes are inherited a lot and I forgot to make the dtors virtual
2018-12-24 09:05:19 +03:00
kd-11
696b91cb9b
rsx: Reimplement conditional execution in shaders
...
- Per-channel conditional execution introduces RAW hazards all over the place
- Its cheaper to process both branches and select between the two
- Also improves ShaderVariable functionality to allow functionality such as match_size and taking complex variables as inputs
2018-12-24 09:05:19 +03:00
kd-11
c75749f8ce
rsx: fix flip logic when grabbing output from the surface cache
2018-12-24 09:05:19 +03:00
Megamouse
bc3ab7a9d9
Input: Enable In-Game Pad Config Reset
2018-12-17 19:41:18 +01:00
vit9696
5a40c1802b
Support macOS bundling for binary distribution
2018-12-16 18:17:21 +03:00
eladash
c50d459b1e
cleanup rsx fifo debugger command display
2018-12-15 19:40:18 +03:00
eladash
098d634328
rsx fifo: Fix call cmd offset mask
...
highest 3 bits are masked according to tests, also filter certainly invalid jumps with offset higher than max
2018-12-15 19:40:18 +03:00
eladash
c2aa10cccd
reduce register_pair container
2018-12-15 19:40:18 +03:00
eladash
45ed58cdaf
Fix rsx capture replay
...
Allow to capture non-increment cmd flag that was missing in command.reg
2018-12-15 19:40:18 +03:00
eladash
87988e9da8
rsx fifo: Stability improvements
...
* Restore stack in fifo error handling
* Update get register after the cmd execution
* Fix put pause in the middle of command
* Add restore points when branching to self
* Precise nopcmd detection
* Test all invalid cmds for early treatment of queue corruption
2018-12-15 19:40:18 +03:00
eladash
835a552d8d
rsx: Implement cellGcmSetNotify
2018-12-15 19:40:18 +03:00
eladash
415b995a54
log rsx get ctrl
2018-12-15 19:40:18 +03:00
eladash
8cbaa8627c
Do not rely on cellPadInit in native ui
2018-12-15 13:51:16 +01:00
Rui Pinheiro
54bfe2e102
Add log warning on slow flush path
2018-12-11 22:37:10 +03:00
Rui Pinheiro
18b9ee4541
Reimplement overlapping fbo "hack"
...
To avoid the need (and performance hit) of Read Color/Depth Buffers, we
may not invalidate overlapping fbos inside lock_memory_region unless
they are guaranteed to be superseded by the new one.
This avoids e.g. issues with overblooming, among others.
2018-12-11 22:37:10 +03:00
Rui Pinheiro
5ab7296665
Fix xcode build
2018-12-11 22:37:10 +03:00
Rui Pinheiro
bcdf91edbb
Misc. Texture Cache fixes
2018-12-11 22:37:10 +03:00
Rui Pinheiro
9d1cdccb1a
Implement dedicated texture cache predictor
2018-12-11 22:37:10 +03:00
Rui Pinheiro
af360b78f2
Texture cache section management fixups
...
Fixes VRAM leaks and incorrect destruction of resources, which could
lead to drivers crashes.
Additionally, lock_memory_region is now able to flush superseded
sections. However, due to the potential performance impact of this
for little gain, a new debug setting ("Strict Flushing") has been
added to config.yaml
2018-12-11 22:37:10 +03:00
Nekotekina
476090a747
Detach VBlank and RSX Decompiler threads
...
Should fix exception handling in RSX Thread
2018-12-04 23:41:54 +03:00
eladash
45942c4962
Fix segfault when scaled image dimension is less than clip's
2018-12-04 13:01:29 +03:00
eladash
fa5652fceb
rsx image_in: Implement negative scaling
2018-12-04 13:01:29 +03:00
eladash
ce500c75c4
throw exceptions in case of invalid/unknown operations in image_in
2018-12-04 13:01:29 +03:00
eladash
6ecf2fb3d0
rsx: default lv2 semaphore context + dma_4097
...
extracted from vsh
2018-12-04 13:01:29 +03:00
eladash
28e4a9e0d0
rsx image_in: Fix in_pitch 0
...
The hw doesnt fix pitch, when specifying src pitch 0 it copies the same pixels line to dst. keep in mind out_pitch = 0 is not allowed in image_in.
Same goes for buffer_notify, though it allows out_pitch to be 0.
2018-12-04 13:01:29 +03:00
eladash
d1d3ac984e
rsx image_in: Fix src size calculation when in_pitch != line_lengh
2018-12-04 13:01:29 +03:00
eladash
0a1da14a15
rsx image_in: remove clip h and w hack
...
If clip region is empty, dont execute
2018-12-04 13:01:29 +03:00
eladash
4ddafc481e
remove unreachable code
2018-12-04 13:01:29 +03:00
eladash
b48a4b6459
rsx-capture: reduce capture size
...
* Dont bother capturing 'destination' blocks with no data. instead premap all main memory to ensure allocated
* Capture zcull and tile state as their compressed gcm forms
* Fix index array capturing, ignore empty sets
* hle gcm: Fix byteswaping in cellGcmSetZcull
2018-12-04 13:01:29 +03:00
NicknineTheEagle
32059bfaa2
Properly get PARAM.SFO and icons for C00 games ( #5370 )
...
* Added a helper function for fetching game's PARAM.SFO path
This should properly get SFO path for unlocked C00 games
* Normalized line endings
* Refresh game list after installing a RAP file
2018-12-04 01:46:01 +03:00
kd-11
a56ba737b5
vk: Silence log spam
2018-12-03 20:01:23 +03:00
kd-11
504ab5a6d4
rsx: Minor cleanup to silence stupid compiler warnings
2018-12-03 20:01:23 +03:00
kd-11
f4c28eceef
rsx: Fix null renderer
2018-12-03 20:01:23 +03:00
kd-11
9d0042f509
rsx: Fixup for the flattener
...
- Reset the flattener before use
- Better detection of FIFO misalignment
2018-12-03 20:01:23 +03:00
kd-11
ec768afbd9
rsx: Flip workarounds for applications that flip via syscall
...
- Do not assume flip marks end-of-frame if executed via syscall
- Also disables skip_frame for these applications as there is no frame boundary
- NOTE: QUEUE_HEAD cannot be relied on as it is seemingly possible to flip the same head and not need to queue it
2018-11-30 23:51:25 +03:00
kd-11
2168159d03
gl: Fix flip regression
...
- Restore graphics state after flip (including active fbo) because flip can be made through a syscall
2018-11-30 23:51:25 +03:00
kd-11
b96ed5cd4e
gl: Do not rely on driver statistics for s3TC textures; they are inconsistent.
2018-11-30 23:51:25 +03:00
kd-11
f1c3b46d60
rsx: Fixup - undo vertex cache 'improvements'
2018-11-30 23:51:25 +03:00
kd-11
5b6e1420f3
rsx: Pipeline barriers fixed up
...
- Ensure barriers are invoked even if no draw occurs!
-- Ensures that deferred commands are executed eventually
2018-11-30 23:51:25 +03:00
kd-11
8a186bb97e
rsx: Fix insertion of execution barriers
...
- Ignore barriers inserted after BEGIN but before any draw commands are emitted
- Properly process tail barriers inserted before END but after draw commands are submitted
- Ignore execution barriers with no effect (same register value written)
2018-11-30 23:51:25 +03:00
kd-11
1d19f71a46
rsx: Re-enable fifo error reset
2018-11-30 23:51:25 +03:00
kd-11
718a04c84f
fixup: Clear disabled attrib entries
2018-11-30 23:51:25 +03:00
kd-11
833c25894f
[WIP] rsx: Rebase cleanup
2018-11-30 23:51:25 +03:00
kd-11
5193c99973
rsx: Enable dynamic FIFO preprocessing
...
- Tries to detect when FIFO preprocessing is beneficial and only enables optimizations if the benefit outweighs the cost
- Current threshold is at least 500 draw calls saved at over 2000 draw calls to justify the overhead
- TODO: More tuning for other CPUs
2018-11-30 23:51:25 +03:00
kd-11
7b065d7781
rsx: Fixup; input attributes blob decoding
...
- Use an unstructured blob and index into the vec4 structures to extract the real data
2018-11-30 23:51:25 +03:00
kd-11
846daadd5d
rsx: Fixups
...
- Improve vertex attribute layout format. Allows for full 16-bit attribute divisor
- Use actual pitch when declaring framebuffer rsx pitch instead of register value in case of swizzle? rendering
2018-11-30 23:51:25 +03:00
kd-11
2e32777375
rsx: Scrap the prebuffered queue approach
...
- Basically starting over
- The cost of making command copies into the queue has a measurable impact
2018-11-30 23:51:25 +03:00
kd-11
9deecd506a
fixup: It is possible for NOP commands to contain other garbage
2018-11-30 23:51:25 +03:00
kd-11
26a56ef1f1
vk: Spec compliance.
...
- TODO: Implement push_constants path instead of copy + bind descriptor sets
2018-11-30 23:51:25 +03:00
kd-11
d6b4440ef9
gl: Separate vertex env from program env
2018-11-30 23:51:25 +03:00
kd-11
435afcb865
rsx: Fix fifo draw barriers
2018-11-30 23:51:25 +03:00
kd-11
2d88e41583
rsx: Fix some checks when using inlined array rendering
2018-11-30 23:51:25 +03:00
kd-11
54ec363e88
rsx: Critical pipeline fixes
...
- Fix scissor and viewport binding behavior
- Fixes recovery if empty scissor is specified and then 'fixed' later
- Optimizes state binding a bit
2018-11-30 23:51:25 +03:00
kd-11
1ad76ad331
rsx: Restructure programs
...
- Also re-enable pipeline optimizations
2018-11-30 23:51:25 +03:00
kd-11
b0a6b72ce8
rsx: Optimizations
...
- Replace a few more vectors with simple_array<T>
- Avoid unnecessary string comparisons in backends. We already know referenced textures from the program analysers!
2018-11-30 23:51:25 +03:00
kd-11
677b16f5c6
rsx: Fixups
...
- Also fix visual corruption when using disjoint indexed draws
- Refactor draw call emit again (vk)
- Improve execution barrier resolve
- Allow vertex/index rebase inside begin/end pair
- Add ALPHA_TEST to list of excluded methods [TODO: defer raster state]
- gl bringup
- Simplify
- using the simple_array gets back a few more fps :)
2018-11-30 23:51:25 +03:00
kd-11
e01d2f08c9
rsx: Refactor FIFO
...
- Removes fifo structures from common RSXThread
- Sets up a dedicated FIFO controller
- Allows for configurable queue optimizations
2018-11-30 23:51:25 +03:00
eladash
37b6afaf2c
rsx: inlined array stride fix
2018-11-11 23:17:07 +03:00
eladash
75221a6078
rsx: Fix inlined vertex array validation
2018-11-04 22:57:18 +03:00
eladash
fb30c8a937
rsx enums: fix typos
2018-10-30 22:33:59 +03:00
eladash
4069470585
rsx-debugger: ignore invalid cmds
...
basically ignore all non method cmds when scrolling to the next command, not only branches.
2018-10-30 22:33:59 +03:00
Megamouse
d56c85fe01
RSX/Capture: fix filePath and remove strict mode check ( #5283 )
...
- Fixes regression introduced by kd-11 when merging in jarves' flip rework.
2018-10-27 13:06:50 +03:00
eladash
5ee351234c
rsx-capture: unbreak
2018-10-23 18:02:03 +03:00
elad
6829fa0286
rsx: Improve inlined arrays ( #5248 )
...
* rsx: Implement register reads in inlined arrays
* rsx: Check for disabled streams in inlined arrays
2018-10-20 16:00:53 +03:00
Nekotekina
1b37e775be
Migration to named_thread<>
...
Add atomic_t<>::try_dec instead of fetch_dec_sat
Add atomic_t<>::try_inc
GDBDebugServer is broken (needs rewrite)
Removed old_thread class (former named_thread)
Removed storing/rethrowing exceptions from thread
Emu.Stop doesn't inject an exception anymore
task_stack helper class removed
thread_base simplified (no shared_from_this)
thread_ctrl::spawn simplified (creates detached thread)
Implemented overrideable thread detaching logic
Disabled cellAdec, cellDmux, cellFsAio
SPUThread renamed to spu_thread
RawSPUThread removed, spu_thread used instead
Disabled deriving from ppu_thread
Partial support for thread renaming
lv2_timer... simplified, screw it
idm/fxm: butchered support for on_stop/on_init
vm: improved allocation structure (added size)
2018-10-19 22:22:35 +03:00
elad
623f1b35f6
rsx_capture/gcm: Fix tile binding ( #5246 )
...
* gcm: Fix tile offset setting
highest bit signifyies location, so ignore that while reading the offset.
* rsx-capture: Fix tile binding
fixes division by zero when dividing by pitch when the tile is not bound.
* rsx-capture: Fix zcull binding
2018-10-12 19:05:08 +03:00
eladash
83b6c98563
rsx: Fix u16 index arrays overflow
...
Force u32 index array destinations to avoid overflows when adding vertex base index.
2018-10-08 16:39:47 +03:00
eladash
e361e0daa6
rsx: Fix restart index check for u16 index arrays
...
Dont ignore upper bits of the restart index with u16 types
2018-10-08 16:39:47 +03:00
Megamouse
49e5212a8f
RSX/Overlays: Add option for japanese button layout
2018-10-03 23:08:33 +02:00
Megamouse
76da3fa907
RSX/Overlays: don't press buttons on every iteration
2018-10-03 21:37:05 +02:00
Megamouse
9693d1c3a3
RSX/Overlays: formatted comments
2018-10-03 21:37:05 +02:00
eladash
348db050ae
rsx: Fix texture height read
2018-10-03 20:57:46 +03:00
eladash
62f97f2e5f
rsx: Fix default texture dimensions
...
haha
2018-10-03 20:57:46 +03:00
eladash
fa723f6dc4
rsx: Fix texture depth read
2018-10-03 20:57:46 +03:00
eladash
a92ae827c1
rsx: Remove texture mipmap hack
2018-10-03 20:57:46 +03:00
eladash
6586090307
rsx: Remove texture size hack
2018-10-03 20:57:46 +03:00
eladash
eacd1b8f13
rsx: Remove texture address hack
2018-10-03 20:57:46 +03:00
Nekotekina
da6ce80f4f
Make vm::get_super_ptr return contiguous memory
...
Cleanup RSX code complexity
2018-09-27 23:37:13 +03:00
eladash
72ba062b1a
rsx: Fix pfifo ret opcode
2018-09-27 17:47:32 +03:00
eladash
a47ebad24c
rsx: Fix pfifo nop cmd
2018-09-27 17:47:32 +03:00
Nekotekina
306f95a9ae
New named_thread template (preview)
...
Old class named_thread renamed to old_thread
It's too hard to move in a single commit
2018-09-27 14:04:16 +03:00
kd-11
bdf85ed900
rsx: Fixup for vertex attrib parsing
...
- POS does not have to be fetched from ATTR[0]
- Confirmed with UC1 that uses WEIGHT for positions
- At least one POS stream has to exist to feed the position attribute which cannot repeat for a single triangle
2018-09-26 19:41:50 +03:00
kd-11
6a9f234dc7
rsx: Fixup flip behaviour
...
- handle_emu_flip is very heavy, only fire
2018-09-26 19:41:50 +03:00
eladash
f056ef7a80
rsx-capture: Save initial method registers state
2018-09-26 17:55:08 +03:00
eladash
5b0ed1e2eb
rsx-capture: Map dynamically rsx data injection addresses
2018-09-26 17:55:08 +03:00
eladash
8e268aedc7
rsx-capture: Rewrite FIFO commands allocation
2018-09-26 00:58:24 +03:00
kd-11
f72157bcec
rsx: Fix vertex attrib parsing
2018-09-25 22:03:35 +03:00
kd-11
dab30c0051
rsx: Disable predictions if 50% of predictions are wrong
...
- This happens often in loading screens where the memory usage pattern is often randomized by loading in of assets
2018-09-24 21:19:38 +03:00
kd-11
a3d44b5e1f
rsx: Cleanup changes for the flip patch
2018-09-24 16:44:02 +03:00
Jake
699eadc84f
rsx: Move render flip from rsx queue command to flip command
2018-09-24 16:44:02 +03:00
Rui Pinheiro
35139ebf5d
Texture cache cleanup, refactoring and fixes
2018-09-24 15:26:40 +03:00
Rui Pinheiro
f3029b2b42
Change Cell->RSX map/unmap notifications
...
This allows for further flexibility on the RSX side, allowing us to fix
some bugs and crashes in later commits.
2018-09-24 15:26:40 +03:00
eladash
06572c6011
rsx: Fix vertex count if all the streams are disabled
2018-09-24 13:25:05 +03:00
eladash
e0a676a3fe
rsx: Fix vertex arrays fetch with inlined draws
2018-09-24 13:25:05 +03:00
eladash
e8474145a5
rsx: Remove shader address verification
...
this came from a misunderstanding of the register's use
2018-09-24 13:25:05 +03:00
kd-11
dafc914bcc
rsx: temporary hack
...
- Removes all use of valid_count as a metric until the new refactor is merged
2018-09-21 16:32:23 +03:00
kd-11
2b6e6a9ae9
gl: Fix problems with framebuffer reuse
...
- Matching attachments with resource id fails because drivers are reusing
handles!
- Properly sets up stale fbo ref counting and removal
- Properly sets up resource reference test with subsequent removal to
avoid using a broken fbo entry
2018-09-21 16:32:23 +03:00
kd-11
fc486a1bac
rsx: Preserve memory order when doing flush
...
- Orders flushing to preserve memory at all cost
- Avoids false positive where flushing overlapping sections can falsely invalidate another with head/tail test
2018-09-21 16:32:23 +03:00
kd-11
23dc9d54e3
rsx: Fix flip source selector
2018-09-21 16:32:23 +03:00
kd-11
a21bdb9f45
rsx; blit engine fixes
...
- Forcefully downloads and reuploads data from the CPU in case of unexpected overlaps
- Properly detect correct size of newly created blit targets
- Remember to clear any existing views when changing the default component map!
2018-09-21 16:32:23 +03:00
eladash
1a6c819176
cellgcm: Fix SET_REFERENCE initial value
2018-09-20 01:05:40 +03:00
eladash
e6b68b260a
rsx: Improve FIFO mem faults handling
...
increase the delay between faults, reduce log spam by allowing the messages to stack up
2018-09-20 01:05:40 +03:00
eladash
a8ea576b22
rsx/cellgcm: Implemet initialization registers reset
2018-09-20 01:05:40 +03:00
kd-11
d6dc1493cb
rsx/overlays: Implement blur, darkening and ability to disable custom background
2018-09-18 16:24:13 +03:00
kd-11
9f61fb5a78
overlays: Allow custom background for message dialog
2018-09-18 16:24:13 +03:00
Lassi Hämäläinen
7aef811ff7
CMake: Refactor CMake build ( #5032 )
...
* CMake: Refactor build to multiple libraries
- Refactor CMake build system by creating separate libraries for
different components
- Create interface libraries for most dependencies and add 3rdparty::*
ALIAS targets for ease of use and use them to try specifying correct
dependencies for each target
- Prefer 3rdparty:: ALIAS when linking dependencies
- Exclude xxHash subdirectory from ALL build target
- Add USE_SYSTEM_ZLIB option to select between using included ZLib and
the ZLib in CMake search path
* Add cstring include to Log.cpp
* CMake: Add 3rdparty::glew interface target
* Add Visual Studio CMakeSettings.json to gitignore
* CMake: Move building and finding LLVM to 3rdparty/llvm.cmake script
- LLVM is now built under 3rdparty/ directory in the binary directory
* CMake: Move finding Qt5 to 3rdparty/qt5.cmake script
- Script has to be included in rpcs3/CMakeLists.txt because it defines
Qt5::moc target which isn't available in that folder if it is
included in 3rdparty directory
- Set AUTOMOC and AUTOUIC properties for targets requiring them (rpcs3
and rpcs3_ui) instead of setting CMAKE_AUTOMOC and CMAKE_AUTOUIC so
those properties are not defined for all targets under rpcs3 dir
* CMake: Remove redundant code from rpcs3/CMakeLists.txt
* CMake: Add BUILD_LLVM_SUBMODULE option instead of hardcoded check
- Add BUILD_LLVM_SUBMODULE option (defaults to ON) to allow controlling
usage of the LLVM submodule.
- Move option definitions to root CMakeLists
* CMake: Remove separate Emu subtargets
- Based on discussion in pull request #5032 , I decided to combine
subtargets under Emu folder back to a single rpcs3_emu target
* CMake: Remove utilities, loader and crypto targets: merge them to Emu
- Removed separate targets and merged them into rpcs3_emu target as
recommended in pull request (#5032 ) conversations. Separating targets
probably later in a separate pull request
* Fix relative includes in pad_thread.cpp
* Fix Travis-CI cloning all submodules needlessly
2018-09-18 13:07:33 +03:00
elad
0d4f0f95cc
rsx: Clamp texture offsets ( #5137 )
...
* rsx: Clamp texture offsets
* rsx: Remove texture location check/hack
2018-09-17 10:55:17 +03:00
kd-11
16dcbe8c74
rsx/vp: Fix ARL opcode properly
...
- NOTE: The address swizzle index is only for use as src. The address registers are only used one channel at a time.
- When the destination of ARL, the encoding is the same as the other temp registers
2018-09-15 11:57:06 +03:00
elad
d24f9194f7
typo fix
...
shader's location is decremented by one to match cellGcm's constants.
2018-09-13 16:49:58 +03:00
eladash
b9ad578b00
rsx: Add a default shader address state
2018-09-13 16:49:58 +03:00
Dzmitry Malyshau
d28c0d16f8
[vk] don't ask for VK_FORMAT_UNDEFINED support
2018-09-13 16:04:50 +03:00
scribam
4cb98014a2
rsx: tiny zcull optimizations
2018-09-13 12:43:40 +03:00
eladash
efbd77deb4
rsx: dont silently ignore null shader address
2018-09-12 00:40:20 +03:00
Dzmitry Malyshau
7c4693e271
[vk] Throw an exception on using a repder pass that the driver doesn't support
2018-09-11 23:44:56 +03:00
Dzmitry Malyshau
89ddeda24a
[vk] check for attachment format properties before pre-creating render passes
2018-09-11 23:44:56 +03:00
scribam
c8c8ce5e9e
rsx: add virtual destructor for default_vertex_cache
2018-09-10 19:59:37 +03:00
kd-11
f413996362
rsx: Minor texture cache fixes
...
- Retag resources reprotected under flush_always rules
- Properly check for blit resource fitting taking into account format
mismatch, pitch mismatch and typeless transfers
2018-09-10 15:43:28 +03:00
Nekotekina
ed9fb8405b
Move rotate/cntlz/cnttz helpers to Utilities/asm.h
2018-09-08 00:32:04 +03:00
Dzmitry Malyshau
4e09573937
[vk] Check for BGRA8 linear image to support blitting
2018-09-07 22:02:02 +03:00
Dzmitry Malyshau
b454dde871
[vk] fix cubic view construction
2018-09-07 19:11:34 +01:00
Dzmitry Malyshau
27474316fd
Add missing virtual desctructors ( #5094 )
2018-09-07 14:35:40 +03:00
kd-11
66610a28af
rsx/common: Clean up shared glsl header to minimize string concat operations
2018-09-06 21:11:11 +03:00
kd-11
346b97f871
rsx: Preserve fog coordinate across shader stages
...
- The x value contains the VP output value interpolated across primitive surface
- The y coordinate contains the fog fraction according to the selected fog formula
2018-09-06 21:11:11 +03:00
scribam
343656f66d
cleanup: remove unnecessary return and namespace declaration
2018-09-06 13:15:59 +03:00
scribam
2834c88de7
cleanup: remove intermediate const char* variables
2018-09-06 13:15:59 +03:00
scribam
f83d381e1e
clang-tidy: use nullptr
2018-09-06 13:15:59 +03:00
scribam
c4cff9b543
clang-tidy: remove redundant "apply_swizzle_remap" declaration
2018-09-06 13:15:59 +03:00
scribam
d7bb59cd99
c++17: use std::size
2018-09-06 13:15:59 +03:00
Nekotekina
ca5158a03e
Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex)
...
Remove semaphore_lock and writer_lock classes, replace with std::lock_guard
Change semaphore<> interface to Lockable (+ exotic try_unlock method)
2018-09-03 23:00:36 +03:00
Nekotekina
ce4c4696dd
Try to get rid of SIZE_32 macro
2018-09-03 21:40:36 +03:00
kd-11
dea5193fd7
rsx: Fix FP temp register count
2018-09-03 21:39:18 +03:00
kd-11
2e0ecb556c
rsx: Possible fix for UB data type consistency
2018-09-03 18:24:20 +03:00
kd-11
5a08b690d5
gl: always clean up the heap when using legacy buffers
2018-09-03 18:24:20 +03:00
kd-11
815f4aa63b
vk: Improve logging of device names and driver versions
2018-09-03 18:24:20 +03:00
kd-11
e23435a190
vk: whitespace fix only
2018-09-03 18:24:20 +03:00
kd-11
85d38b5751
d3d12: restore working graphics
2018-09-03 18:24:20 +03:00
kd-11
6399833182
rsx: Fix endianness order when immediate mode register is updated, but used as register lookup
...
- Simplify the code by unifying all the register-backed memory
2018-09-03 18:24:20 +03:00
scribam
bf89b709cb
Remove useless #include
2018-08-31 20:13:54 +04:00
scribam
7d0e94ab0a
Compilation fixes for optional on osx
2018-08-31 20:13:54 +04:00
Lassi Hämäläinen
79cf2832ae
Remove Utilities/variant.hpp and use C++17 variant
...
- Remove also Utilities/variant_visitor.hpp
- Fix variant and variant_visitor usages and #includes
2018-08-31 17:49:59 +04:00
elad
685eaedbf9
rsx: Fix typos ( #5054 )
2018-08-30 00:47:48 +03:00
eladash
37ee0a2f55
Rsx/cellgcm: complete rsx_state::reset()
2018-08-29 13:37:50 +03:00
eladash
fc50e6abcb
Rsx: remove method registers reset
...
cellGcm manually resets registers each flip, tested with cellGcmSetFlip
2018-08-29 13:37:50 +03:00
Dzmitry Malyshau
c452b43ebc
Basic support for Vulkan Portability on OSX
2018-08-28 21:20:11 +03:00
eladash
acf1286b49
Rsx: fix unknown cull faces
2018-08-28 10:47:24 +03:00
eladash
38a72cc6ee
Rsx: fix flip method registers reset
...
driver flip does not reset registers
2018-08-28 10:47:24 +03:00
eladash
e279bdb304
Rsx: add missing default vertex shader attributes registers states
2018-08-28 10:47:24 +03:00
Nekotekina
a93a40e8d9
Disable texture_cache::emit_once (MSVC crash)
2018-08-25 01:58:28 +03:00
Nekotekina
1c6c24f8ac
Update GSL and yaml-cpp submodules
2018-08-25 01:15:47 +03:00
Nekotekina
923314aef5
Rewrite texture_cache::emit_once
...
Also trying to workaround MSVC bug
2018-08-25 01:15:47 +03:00
Nekotekina
5afd12e8a4
[CMake] Use C++17
2018-08-24 16:44:19 +03:00
kd-11
21e1911112
vk: Improve fence wait logic
2018-08-24 14:52:22 +03:00
kd-11
76f102e865
vk: Check for allowed texbuffer range instead of assuming 64M
2018-08-24 14:52:22 +03:00
kd-11
f0a91484a0
vk: Implement double-buffered heaps for platforms without universal support for host visibility (APPLE)
2018-08-23 22:54:56 +03:00
kd-11
c6e35706a3
vk: Support sw component swizzle decode because metal sucks
2018-08-23 22:54:56 +03:00
kd-11
f3d3a1a4a5
rsx: Rework section reuse logic
2018-08-22 17:22:54 +03:00
eladash
874d18f761
rsx-debugger: bugfixes and improvements
...
*always translate given address
*add a few missing methods names
*fix branches
2018-08-22 13:19:07 +03:00
eladash
56d553f10d
Rsx: fix cmd jump over put register
2018-08-22 12:20:31 +03:00
eladash
158019b50f
Rsx: fix translation when address is negative
...
move address shift to where it should be, extend io table to catch all possible values.
2018-08-22 12:20:31 +03:00
kd-11
25ec3789fe
rsx: Fix present modes ordering
...
- Newer nvidia drivers are not exposing IMMEDIATE present mode unless you change options in nvidia control panel
This can cause severe performance degradation unless the vsync option is set to "off" in control panel
2018-08-19 15:56:07 +03:00
kd-11
7915dcb23c
rsx: Do not overflow the program buffer!
...
- Some games overflow the program buffer e.g Resistance games
The observed overflow is one instruction longer, likely an engine bug
with counting instructions
2018-08-18 16:14:30 +03:00
kd-11
dd21e43ed5
rsx: Force disable draw reordering when capturing a frame
2018-08-18 16:14:30 +03:00
kd-11
937f1e8cd0
fix gcc build
2018-08-18 16:14:30 +03:00
kd-11
4b2b662c3a
rsx: Followup to the memory inheritance hierachy patch
...
- Tags framebuffer resources on first use (when on_write is called to verify memory)
- Texture cache now selects the best match and even sorts atlas writes with memory write order to avoid older data showing over newer one
2018-08-18 16:14:30 +03:00
kd-11
ec31157bc7
gl: Avoid unnecessary scissor state change every draw call.
2018-08-18 16:14:30 +03:00
kd-11
8c93db342f
gl: Reuse framebuffer resources
...
- WIP optimizations for GL backend
2018-08-18 16:14:30 +03:00
kd-11
cca488d0cf
rsx: Enable swizzled decode for all formats unless proven otherwise
...
- Some formats are proven to ignore swizzle flag
- DXT compressed textures
- COMPRESSED_BG_GB class textures
- Some applications are using swizzled wide integer formats so those are confirmed to swizzle
2018-08-18 16:14:30 +03:00
kd-11
f8a9b1fa30
[WIP] rsx: Improve memory inheritance hierachy
...
- Cascade memory writes by invalidating 'downstream' subsurfaces
- Fixup; always resolve for overlapping surfaces before sampling (force
atlas gather test)
2018-08-18 16:14:30 +03:00
kd-11
ba5b59dc59
gl: Do not create secondary context if async is disabled
...
- Some third party programs fall apart when multiple contexts are created
2018-08-18 16:14:30 +03:00
kd-11
0f36e87010
zcull: Improve the delay algorithm to be more consistent
...
- Use proper time checking; depending on what is being done one 'tick' can
be almost a millisecond long or several nanoseconds
- Avoid spamming the system timer unless necessary
2018-08-18 16:14:30 +03:00
kd-11
38191c3013
rsx: Avoid acquiring the vm lock; deadlock evasion
...
- A possible deadlock is still present if rsx is trying to get a super_ptr whilst the vm lock holder is in an access violation
This patch makes this scenario very unlikely since each block need only be touched once
2018-08-18 16:14:30 +03:00
kd-11
741ee9ac41
rsx: Allow linear filtering when reading back GPU-resident memory
2018-08-18 16:14:30 +03:00
kd-11
cc7848b3ef
vulkan: Fix blit engine transfer to ARGB8 render target memory
2018-08-18 16:14:30 +03:00
kd-11
e9d6096356
vk: Fixups for type b surfaces
2018-08-18 16:14:30 +03:00
kd-11
373e02e91c
rsx: Timestamp accuracy workaround
2018-08-18 16:14:30 +03:00
kd-11
1200ca8172
rsx: Optimize hash_struct; vk cleanup
2018-08-18 16:14:30 +03:00
kd-11
d0165290b6
rsx: Refactor and fix framebuffer layout checks
...
- Refactors shared code back into rsx core
- Adds extra check to avoid contest confusion
2018-08-18 16:14:30 +03:00
kd-11
0267221586
Minor optimizations and fixes
...
- FIFO: avoid multiline spam
- VK: Fix program setup counter
- FS: Precalculate fragment constants buffer size during analysis step
2018-08-18 16:14:30 +03:00
kd-11
9f0fada17a
ZCULL: lower notice severity to avoid spam
2018-08-18 16:14:30 +03:00
kd-11
8800c10476
zcull synchronization tweaks
...
- Implement forced reading when calling update method to sync partial lists
- Defer conditional render evaluation and use a read barrier to avoid extra work
- Fix HLE gcm library when binding tiles & zcull RAM
2018-08-18 16:14:30 +03:00
kd-11
3b47e43380
rsx: Synchronization rewritten
...
- Do not do a full sync on a texture read barrier
- Avoid calling zcull sync in FIFO spin wait
- Do not flush memory to cache from the renderer side; this method is now obsolete
2018-08-18 16:14:30 +03:00
Rui Pinheiro
23b52e1b1c
Mark unsync textures dirty when deferred flushing
...
invalidate_range_impl_base does not mark all textures that will only be
unprotected as dirty when doing a deferred flush, since that is done by
flush_all.
However, if there are no sections to flush, the deferred flush will
use the same code path as non-deferred flushes for unprotecting textures
and forget to mark them as dirty.
This commit fixes this bug.
2018-08-16 15:38:36 +03:00
Rui Pinheiro
fa6a5761b3
Refactor get_intersecting_set
...
The existing implementation restarts the loop immediately after
finding a range_data instance that updates the trampled_range.
This commit refactors this method to continue the loop with the updated
trampled_range, and then repeat only those range_data instances that
were iterated through before the trampled_range was last updated.
As a result, the number of total iterations required is reduced.
2018-08-16 15:38:36 +03:00
Rui Pinheiro
b534d49e48
Fix off-by-one error in get_intersecting_set
...
When the trampled range changes, get_intersecting_set restarts the
outer loop. However, due to an off-by-one error, it skips the first
cache entry when doing so. This can cause a texture not to be
correctly unlocked, which could lead to issues or even deadlocks.
This commit fixes this off-by-one error.
2018-08-16 15:38:36 +03:00
Rui Pinheiro
f82ce06fdc
Fix typo in buffered_section::overlaps_page
...
If "address" is not page-aligned, the calculated end address for the
corresponding page is incorrect which can lead to false positives,
causing some textures to be re-uploaded unnecessarily.
This commit fixes this typo.
2018-08-16 15:38:36 +03:00
eladash
061c787e56
rsx-capture: unbreak
2018-08-16 03:27:11 +04:00
Nekotekina
aa4040bb7b
Implement vm::find_map; improve memory allocation
...
Add vm::user64k and vm::user1m constants
Remove vm::user_space, unreserve it
2018-08-14 15:14:06 +03:00
eladash
f349695a75
Rsx: rewrite address translation
2018-08-13 16:16:34 +03:00
eladash
9e380a4a4a
Rsx: avoid invalid cmds execution
2018-08-12 23:37:24 +03:00
eladash
c80eb1ba02
Rsx: fix CALL and RET cmd
2018-08-12 23:37:24 +03:00
Megamouse
8cb749110f
RSX Overlay: fix set text
2018-07-30 20:58:41 +02:00
Megamouse
d057c79733
RSX: use localtime_s instead of localtime
2018-07-28 23:10:45 +02:00
Megamouse
f82739afb0
RSX: Add performance overlay colors to configs
...
use a string hex color code. Allowed string formats are:
#FFFFFF or #FFFFFFFF (or both without #)
2018-07-28 23:10:45 +02:00
Megamouse
2211e95e41
RSX/Qt: add the possibility to center the performance overlay
2018-07-28 23:10:45 +02:00
Megamouse
67aff85e8e
RSX/Qt: Move rrc captures to captures dir
2018-07-28 23:10:45 +02:00
Megamouse
bb8fa28521
RSX: add config settings for shader compilation hint positions
2018-07-28 23:10:45 +02:00
Megamouse
eecb984689
RSX/Qt: add more performance overlay options to the gui
2018-07-28 23:10:45 +02:00
Megamouse
f8d396ac9e
change rsx_capture filename
2018-07-28 23:10:45 +02:00
kd-11
19d808d378
rsx/gl: Minor cleanup and optimization
...
- Track register change status
- Remove unused gl classes
2018-07-22 17:19:59 +03:00
kd-11
8695f95267
rsx: Reimplement cached textures and their views
2018-07-22 17:19:59 +03:00
scribam
65d270e5d8
clang-tidy: performance-faster-string-find
...
https://clang.llvm.org/extra/clang-tidy/checks/performance-faster-string-find.html
2018-07-15 12:51:09 +04:00
kd-11
c35d0d16e7
vk: cleanup/optimization, remove unnecessary initialization code
2018-07-14 15:19:56 +03:00
kd-11
e7f30640ef
rsx: Async shader compilation
...
- Defer compilation process to worker threads
- vulkan: Fixup for graphics_pipeline_state.
Never use struct assignment operator on vk** structs due to padding after sType member (4 bytes)
2018-07-14 15:19:56 +03:00
kd-11
fa55a8072c
rsx: Improve vertex textures support
...
- Adds proper support for vertex textures, including dimensions other than 2D textures
- Minor analyser fixup, removes spurious 'analyser failed' errors
- Minor optimizations for program state tracking
2018-07-12 18:02:28 +03:00
kd-11
d266a25618
silence some annoying warnings
2018-07-09 13:06:00 +03:00
kd-11
1ddcad4fa4
facepalm
...
- Fix openGL regression
2018-07-09 13:06:00 +03:00
kd-11
f0a9799b4b
rsx/Qt: Fix Qt shader loading dialog crash
2018-07-07 16:20:33 +03:00
kd-11
4d40ed9dbd
rsx: Silence harmless warning
2018-07-07 16:20:33 +03:00
kd-11
d78957d1cf
rsx/vp: CodeGen improvements
...
- Fix double destination writes on conditional write masking
- Fix codegen to simplify simple scalar comparisons vs vector functions
2018-07-07 16:20:33 +03:00
kd-11
2c34195954
rsx/vp: Discard broken vertex programs with no writes to POS register
2018-07-07 16:20:33 +03:00
kd-11
2ca935a26b
vp: Improve vertex program analyser
...
- Adds dead code elimination
- Fix absolute branch target addresses to take base address into account
- Patch branch targets relative to base address to improve hash matching
- Bumps shader cache version
- Enables shader logging option to write out vertex program binary,
helpful when debugging problems.
2018-07-07 16:20:33 +03:00
kd-11
bd915bfebd
rsx: vp decompiler fixes
...
- Fix program abort logic to never abort before resolving later label addresses
Fixes jumping over broken code and jumping over END markers
- TEXTURE_CONTROL2 has indexing range of [0..15] without stride skipping!
This register does not have interleaving with other texture registers
- Track shader address poke as it seems to invalidate programs as well
2018-07-07 16:20:33 +03:00
kd-11
66854b78fa
rsx: Fix nv308a::color
2018-07-07 16:20:33 +03:00
eladash
345f92ab0a
rsx: more efficient command reading
2018-06-27 21:59:34 +03:00
kd-11
42851a93d4
vk: Fixup
2018-06-26 20:07:20 +03:00
kd-11
24f4c92759
rsx: Improve texture cache read speculation
2018-06-26 20:07:20 +03:00
kd-11
c3d75e208f
glslang: Bump to version 2776
2018-06-26 20:07:20 +03:00
kd-11
df2137781d
vk: Strip 'stencil' MSB when writing d24x8 data
...
- Seems to contains garbage in MSB when DEPTH aspect is read back
- TODO: Implement custom depth and stencil readback routine
2018-06-26 20:07:20 +03:00
kd-11
1e375e5210
gl: Fixup
2018-06-26 20:07:20 +03:00
kd-11
1730708f47
rsx: Rework memory protection management for framebuffer access
...
- Avoid re-locking memory if there is no reason to do so (no draws issued)
- Actively bound regions should always get written to the backing cache
- Forcefully read memory during download if writes to the target have occured since last sync event
2018-06-26 20:07:20 +03:00
kd-11
bda65f93a6
vk: Tuning [WIP]
...
- Unroll main compute queue loop
- Do NOT run GPU cores on mappable memory! This has a dreadful impact on performance for obvious reasons
- Enable dynamic SSBO indexing (affects AMD)
- Make loop unrolling and loop length variable depending on hardware and find optimum
2018-06-26 20:07:20 +03:00
kd-11
d484253136
vk: Addendum - Synchronize graphics and compute pipelines with barriers
2018-06-26 20:07:20 +03:00
kd-11
5fb4009a07
vk; Add more compute routines to handle texture format conversions
...
- Implement le D24x8 to le D32 upload routine
- Implement endianness swapping and depth format conversions routines (readback)
2018-06-26 20:07:20 +03:00
kd-11
f45dcfe18a
rsx: Fix texture readback
...
- gl: Fix up the calculation for internal image pitch
- vk: Implement GPU-side resizing for read back textures (fixes WCB zoom)
2018-06-26 20:07:20 +03:00
kd-11
278cb52f19
facepalm
2018-06-26 20:07:20 +03:00
eladash
b9fd6ad37d
rsx-capture: unbreak
2018-06-24 15:14:37 +03:00
Jake
00c9b323c2
rsx: fix image_in to use in_pitch when swizzling
2018-06-24 14:29:41 +04:00
eladash
b456955688
rsx: fix hardcoded rsx allocation address
2018-06-24 10:57:30 +03:00
Nekotekina
d62b0c88b0
Restore /dev_flash/ config
2018-06-23 09:26:11 +03:00
Nekotekina
81e5f3b7f2
Remove /dev_flash/ configuration
...
Simplify code by using root config location for /dev_flash/
Hide Emu.GetEmuDir() function due to the risk of misuse
2018-06-22 14:14:29 +03:00
eladash
3e433ef05c
create the shaderlog dir in Emu.Init()
2018-06-21 22:54:08 +04:00
kd-11
8f1c36d79f
rsx: Fix region pitch inaccuracy
...
- Region pitch of 64 (disabled) can be used to indicate packed contents - do not assume it is the actual pitch!
- Also fixes interaction of AA factors with lockable_region size
2018-06-21 13:08:50 +03:00
Megamouse
0ffaf6c1ce
Qt/RSX: reset gs_frame taskbar progr. when closing native progr. dialogs
...
I forgot that the gs_frame's taskbar progress will stay unchanged due to its persistence, unlike the msgdialog.
2018-06-19 21:58:09 +03:00
VelocityRa
dd0684b58a
overlays/perf_overlay: Make pos, font, opacity, margin configurable
...
- Also some perf overlay refactoring
2018-06-18 22:34:26 +03:00
VelocityRa
58f4b26134
overlays: Consider padding when auto-resizing label elements
...
- Also make auto_resize return whether it changed the size
2018-06-18 22:34:26 +03:00
VelocityRa
84d1cf5065
overlays: Change how padding and margin work
...
- Also add 3 helper functions to compiled_resource
2018-06-18 22:34:26 +03:00
VelocityRa
07731d0228
overlays: Fix text rendering position
...
- It should be offset by one line, not half
- Also tweak every overlay element affected by this
to look as it used to
2018-06-18 22:34:26 +03:00
VelocityRa
44449dd9e9
overlays: Refactoring
...
- Use names for overlay command config and vertex data instead of std::pair.
- Make a couple of compiled_resource constructors explicitly named functions.
2018-06-18 22:34:26 +03:00
kd-11
c60f7b89ba
vk: Implement safe typeless transfer
...
- Used to transfer D32S8 data where it makes sense to use this variant
- On nvidia cards, it is very slow to move aspects from D24S8 probably due to the format being faked.
For this reason, the unsafe variant is used for both D16 and D24S8 to avoid the heavy performance loss
2018-06-18 17:32:22 +03:00
kd-11
0d61bae1b9
vk: Performance fix for RADV
...
- RADV does not keep a mapping ptr around for subsequent remap and falls back to heavy amdgpu methods every time
Explicitly manage pointer in the ring buffer structure to fix this
2018-06-18 17:32:22 +03:00
kd-11
d77e62c94e
rsx: Improve GPU resource read prediction
2018-06-18 17:32:22 +03:00
kd-11
2afcf369ec
vk: Add synchronous compute pipelines
...
- Compute is now used to assist in some parts of blit operations, since there are no format conversions with vulkan like OGL does
- TODO: Integrate this into all types of GPU memory conversion operations instead of downloading to CPU then converting
2018-06-18 17:32:22 +03:00
kd-11
0d5c071eee
vk: Implement typeless image transport
2018-06-18 17:32:22 +03:00
kd-11
dd4c13b625
rsx: Avoid race conditions in unsynchronized unprotect
2018-06-18 17:32:22 +03:00
scribam
6f3a63df94
fix compiler warning "-Winconsistent-missing-override"
2018-06-13 20:22:53 +02:00
Megamouse
a8f19fbfae
RSX: fix shader cache progress bar exit state shenanigans
2018-06-11 22:41:38 +03:00
Megamouse
4003aacc6a
RSX: add taskbar progress to native ui progress dialogs
2018-06-08 23:41:56 +03:00
Megamouse
b9b6bd85a6
Qt/RSX: add taskbar progress in msg_dialog_frame for shader compilation
2018-06-08 23:41:56 +03:00
Megamouse
edc9e9b4ec
Qt/RSX: add window title to the shader compilation msg_dialog
2018-06-08 23:41:56 +03:00
kd-11
da9affb348
vk: Fix overlays for variable sampler count
2018-06-08 22:17:50 +03:00
kd-11
00eaf39c01
vk: RADV support for depth scaling and transfer
2018-06-08 22:17:50 +03:00
kd-11
63f803b68a
Refactoring
...
- Make the memory allocator a unique child of the render device.
Fixes object lifetime issues with swapchain management due to cyclic dependencies
2018-06-08 22:17:50 +03:00
kd-11
c9e367befd
rsx/debug: Fix rendering when FIFO reordering is disabled
2018-06-08 22:17:50 +03:00
kd-11
1c5667f0ce
vk: Avoid use-after-free fence object
2018-06-08 22:17:50 +03:00
kd-11
e9c3ab7ae6
fix some linux issues
...
- Fix build
- Fix VMA incompatibility with swapchain_NATIVE
2018-06-08 22:17:50 +03:00
kd-11
1b9c9267f0
rsx: Update memory flags after memory transfer
2018-06-08 22:17:50 +03:00
kd-11
fc18e17ba6
vk: Implement depth scaling using hardware blit/copy engines
...
- Removes the old depth scaling using an overlay.
It was never going to work properly due to per-pixel stencil writes being unavailable
- TODO: Preserve stencil buffer during ARGB8->D32S8 shader conversion pass
2018-06-08 22:17:50 +03:00
kd-11
3150619320
rsx: Preserve read AA state separate from write AA state
...
- Some applications (e.g Backbreaker) use an evil hack to resolve MSAA.
The application respecifies a formerly AA region as a region with no AA then performs a framebuffer feedback lookup.
The old memory keeps AA during read, but writes back to itself with AA resolved.
This is evil on several levels but it just happens to work on PS3
2018-06-08 22:17:50 +03:00
kd-11
0f24379c0e
rsx: Obey MSAA resolve during memory persistence transfer
...
- Ugh. This is a bandaid on a festering wound, AA badly needs a rewrite
Also silence some warnings
2018-06-08 22:17:50 +03:00
Dravonic
400079a006
Parallel shader cache loading ( #4677 )
...
* Parallel shader cache loading
2018-06-01 19:49:29 +03:00
kd-11
87b510d5bf
vulkan improvements
...
- Remove deprecated device layers
- Reimplement overlays resource management using real heap instead of using first_vertex hack
2018-05-31 11:22:40 +03:00
kd-11
9f9e1b5fe0
overlay; Fix leak
2018-05-31 11:22:40 +03:00
kd-11
cf2cb7978b
facepalm
2018-05-30 13:30:23 +03:00
kd-11
f543fb0243
vk/gl: Fix flush synchronization to be kinder to weaker CPUs but not harm higher end CPUs
2018-05-30 13:30:23 +03:00
kd-11
6362942928
rsx: Avoid semaphore acquire deadlock
2018-05-30 13:30:23 +03:00
VelocityRa
c8d8a81ccd
overlays: Performance Overlay
2018-05-30 12:35:41 +03:00
VelocityRa
c2e17d04e1
overlays: Font improvements
...
* Support for using arbitrary firmware fonts
* Support for specifying font extension in `font` constructor (useful for most firmware fonts that use .TTF)
2018-05-30 12:35:41 +03:00
VelocityRa
33b01d9306
overlays: Allow for non-interactable UI components
...
* Also fix a few warnings in overlay_controls
2018-05-30 12:35:41 +03:00
eladash
23b380eb41
allow deallocations to unmap rsx mapped memory
2018-05-29 19:57:28 +03:00
kd-11
83f9be2524
rsx: Promote FIFO optimizations outside of strict mode
...
- The benefits of FIFO optimizations are huge in some cases.
The optimizations also do not break any tested applications so no need to disable with strict mode
- A debug option is provided to disable this behaviour for testing
2018-05-29 13:54:30 +03:00
kd-11
2adb2ebb00
overlays: Avoid race condition on remove-on-update views
...
- Improves cleanup code to consist of 2 parts, remove then dispose. Remove
does not deallocate the item until dispose is called on it, allowing the
backends to first deallocate external references.
- Caller is responsible for managing list locking and tracking disposable list
of items when external references have been cleaned up before using
dispose method.
2018-05-29 13:54:30 +03:00
kd-11
0fc67aa2f6
gl: fix wcb regression
...
- Partial framebuffers and blit targets are possible!
2018-05-24 10:36:04 +03:00
kd-11
493d4e8613
fixup - Improve invalidated region checks for performance
2018-05-24 10:36:04 +03:00
kd-11
b030d1900c
rsx: Fixup - fix broken memory protection fail caused by region respec
...
- Some applications will alternate memory between framebuffer and texture data
2018-05-24 10:36:04 +03:00
kd-11
f38f61d110
vk: Clean up memory allocation and fix GPUOpen VMA for Radeon
2018-05-23 19:07:08 +03:00
kd-11
92b5a705d8
fixup - locking
2018-05-23 19:07:08 +03:00
kd-11
b957eac6e8
rsx: Avoid calling any blocking callbacks from threads that are not rsx::thread
...
- Defers on_notity_memory_unmapped to only run from within rsx context
- Avoids passive_lock + writer_lock deadlock
2018-05-23 19:07:08 +03:00
kd-11
d2bf04796f
Optimized cached write-through
...
- Allows grabbing an unsynchronized memory block if overwriting contents
anyway
- Allows flushing only specified range of memory
2018-05-23 19:07:08 +03:00
kd-11
f8d999b384
fixup - range check
2018-05-23 19:07:08 +03:00
kd-11
fbf6581249
rsx: Fix segmented memory access for rsx::super_ptr
2018-05-23 19:07:08 +03:00
kd-11
d283200e13
vk: Do not do extension test if in a fast context (enum only)
2018-05-23 19:07:08 +03:00
kd-11
3f14bc6961
rsx: Silence some meaningless error
2018-05-23 19:07:08 +03:00
kd-11
f2a3167193
rsx: Lower format compatibility severity since it confuses some people
2018-05-23 19:07:08 +03:00
kd-11
8fcd5c1e5a
rsx: Texture cache fixes
...
1. rsx: Rework section synchronization using the new memory mirrors
2. rsx: Tweaks
- Simplify peeking into the current rsx::thread instance.
Use a simple rsx::get_current_renderer instead of asking fxm for the same
- Fix global rsx super memory shm block management
3. rsx: Improve memory validation. test_framebuffer() and
tag_framebuffer() are simplified due to mirror support
4. rsx: Only write back confirmed memory range to avoid overapproximation errors in blit engine
5. rsx: Explicitly mark clobbered flushable sections as dirty to have them
removed
6. rsx: Cumulative fixes
- Reimplement rsx::buffered_section management routines
- blit engine subsections are not hit-tested against confirmed/committed memory range
Not all applications are 'honest' about region bounds, making the real cpu range useless for blit ops
2018-05-23 19:07:08 +03:00
pauls-gh
f8a0be8c3e
Performance enhancement - Vulkan memory allocator ( #4635 )
...
* Incorporates the vulkan memory allocator from the AMD GPUOpen project
2018-05-23 17:02:35 +03:00
scribam
2270b8d15c
vulkan: link with vulkan-1.lib instead of VKstatic.1.lib
2018-05-23 13:54:27 +03:00
Nekotekina
72574b11ff
SPU: use reservation spinlocks on writes (non-TSX)
...
This should decrease contention by avoiding global lock
2018-05-21 21:56:14 +03:00
kd-11
c9669818eb
Facepalm
...
- overlays: Do not free self handle!!!!
2018-05-21 15:55:25 +03:00
kd-11
f6f45b8699
Native UI refactored ( #4623 )
...
Refactor and improve native overlays
2018-05-20 23:05:00 +03:00
Nekotekina
367f039523
Build transactions at runtime
...
Drop _xbegin family intrinsics due to bad codegen
Implemented `notifier` class, replacing vm::notify
Minor optimization: detach transactions from global mutex on TSX path
Minor optimization: don't acquire vm::passive_lock on PPU on TSX path
2018-05-16 17:31:58 +03:00
scribam
04ad49de4d
typos
2018-05-14 21:14:39 +04:00
kd-11
4836a03a7d
rsx: Fix build
2018-05-13 14:44:14 +03:00
kd-11
9d1f4a2538
vk: Include RADV POLARIS and RADV VEGA in the primitive restart
...
blacklist
2018-05-13 14:44:14 +03:00
kd-11
bff6060bd6
rsx: Improve puller state management
...
- Properly identify puller spin primitives
- Add a small wake delay after exiting a spin delay. Fixes desynchronization
It seems real hw has a small delay between cell edits to commandbuffer memory at the GET address and the changes becoming visible to the DMA puller
Simulated with a short busy_wait, large values will improve sync but degrade performance
2018-05-13 14:44:14 +03:00
kd-11
1aa44ede31
gl: Improve AMD multidraw workaround
...
- Reimplements the AMD workaround using an identity buffer to avoid the performance hit of doing multiple glDrawArrays for every single compiled set
- Reimplements first/count allocation using a scratch buffer to reduce allocation overhead when large number of draw calls is used
2018-05-13 14:44:14 +03:00
kd-11
eccb57d4b8
vk: AMD primitive restart bug workaround
...
- Emulate primitive restart with degenerate triangles
2018-05-13 14:44:14 +03:00
kd-11
b7979d3f57
rsx/vk: Improvements and minor optimizations
...
- Improve dirty state tracking affecting program state
- vk: Refactor out transform constants upload into a separate channel to avoid if possible
transform data uploads are quite expensive
2018-05-13 14:44:14 +03:00
kd-11
440a31ef18
rsx: Optimizations for program management
2018-05-13 14:44:14 +03:00
kd-11
a52ea7f870
rsx: Improve fragment and vertex program usage
...
- Introduces a gpu program analyser step to examine shader contents before attempting compilation or cache search
- Avoids detecting shader as being different because of unused textures having state changes
- Adds better program size detection for vertex programs
- Improved vertex program decompiler
- Properly support CAL type instructions
- Support jumping over instructions marked with a termination marker with BRA/CAL class opcodes
- Fix SRC checks and abort
- Fix CC register initialization
- NOTE: Even unused SRC registers have to be valid (usually referencing in.POS)
2018-05-13 14:44:14 +03:00
Jake
75b40931fc
rsx: initial capture/replay functionality ( #4510 )
...
* rsx: initial capture/replay functionality
2018-05-13 12:18:05 +03:00
Nekotekina
5d15d64ec8
Memory mirror support
...
Implemented utils::memory_release (not used)
Implemented utils::shm class (handler for shared memory)
Improved sys_mmapper syscalls
Rewritten ppu_patch function
Implemented vm::get_super_ptr (ignores memory protection)
Minimal allocation alignment increased to 0x10000
2018-05-09 23:35:34 +03:00
kd-11
98b715d8c8
gl: Workaround for AMD driver bug
2018-04-25 19:14:36 +03:00
kd-11
ffa62918aa
gl: Improve pixel transfer code and notify on AMD driver bug
...
- Readback does not work at all with float textures on AMD openGL
Driver throws a bogus OUT_OF_MEMORY error regardless of amount of VRAM and system RAM available
2018-04-25 19:14:36 +03:00
kd-11
f3210a9a33
rsx: Workaround for lost memory sections
...
- TODO: surface_cache and texture_cache need a better method of persisting partial framebuffer resources
2018-04-25 19:14:36 +03:00
kd-11
58035697d5
rsx: Restore component mapping override for depth textures
2018-04-25 19:14:36 +03:00
kd-11
7e32e7343a
vk: Reorganize handling of formats support
...
- Formats support is linked to the physical device and by extension the logical device derived from it
It therefore makes no sense to track this as a separate object.
Simplifies parameter passing and template specialization.
Also avoids corner cases with AMD hardware (where D24S8 is not supported)
2018-04-25 19:14:36 +03:00
kd-11
291a828217
fixups
2018-04-25 19:14:36 +03:00
kd-11
40ae5e605d
vk: Fix border color selection
2018-04-25 19:14:36 +03:00
kd-11
c5d1f30e82
rsx: Fix performance counters
...
- Detect jump-to-self type idling
2018-04-25 19:14:36 +03:00
kd-11
91a6091d26
rsx: Minor fixes
...
- vk: Clear dirty textures before copying 'old contents' in case the old data does not fill the new region
- rsx: Properly decode border color - seems to be in BGRA format
- vk: better approximation of border color to better choose between the presets
- vk: Individually clear color images outside render pass and without scissor
- vk: Fix renderpass selection for clear overlay pass
- vk: Include scissor region when emulating clear mask
NOTES:
- vk: Completely avoid using vkClearXXXXimage - its 'broken' on nvidia drivers
Spec is vague about the function so its not an actual bug
ClearAttachment is clearly defined as bypassing bound state which works correctly
- TODO: Implement memory sampling to simulate loading precleared memory if cell used memset to preinitialize the framebuffer
Autoclear depth to 1|255 and color to 0 is hacky!
2018-04-25 19:14:36 +03:00
kd-11
da99f3cb9a
rsx: Critical fixes
...
- texture cache: Avoid leaking memory sections
- Avoid double ref increment on flush-always reprotection
- Detect invalidated_resources entries in surface cache when protecting fbo memory
- vk: Copypasta bugfix, properly initialize aspect mask
2018-04-25 19:14:36 +03:00
kd-11
a42b00488d
rsx: Texture fixes
...
- gl/vk: Fix subresource copy/blit
- gl/vk: Fix default_component_map reading
- vk: Reimplement cell readback path and improve software channel decoder
- Properly name the subresource layout field - its in blocks not bytes!
- Implement d24s8 upload from memory correctly
- Do not ignore DEPTH_FLOAT textures - they are depth textures and abide by the depth compare rules
- NOTE: Redirection of 16-bit textures is not implemented yet
2018-04-25 19:14:36 +03:00
kd-11
63d9cb37ec
rsx: Framebuffer fixes
...
Primary:
- Fix SET_SURFACE_CLEAR channel mask - it has been wrong for all these
years! Layout is RGBA not ARGB/BGRA like other registers
Other Fixes:
- vk: Implement subchannel clears using overla pass
- vk: Simplify and clean up state management
- gl: Fix nullptr deref in case of failed subresource copy
- vk/gl: Ignore float buffer clears as hardware seems to do
2018-04-25 19:14:36 +03:00
kd-11
9abbbb79ae
rsx: Blit engine fixes
...
- Ignore unlocked blit sections [TODO]
- Do not attempt blit on hw if bytesize is unsupported
- gl: Implement typeless memory transfers
Uses pbo to handle type-agnostic memory transfer
2018-04-25 19:14:36 +03:00
kd-11
bb5622401c
overlays/gl: minor fixes
...
- fix ogl color map for overlay resources
- fix label background for save dialog
2018-04-25 19:14:36 +03:00
kd-11
6d46ac1ad6
gl: Reimplement textures
...
- Separate texture data from texture views
2018-04-25 19:14:36 +03:00
kd-11
cf1b700ebc
rsx: Improve format mismatch detection hack
2018-04-25 19:14:36 +03:00
kd-11
c5cd758700
rsx: Workaround for G8B8 render targets
...
- Mainly affected are colormasks and read swizzles
NOTES:
- Writes to G write to the second and fourth component (YW)
- Writes to B write to first and third component (XZ)
- This means the actual format layout is BGBG (RGBA) making RG mapping actually GR
- Clear does not seem to have any intended effect on this format (TLOU)
2018-04-25 19:14:36 +03:00
JohnHolmesII
7303f04bc5
Minor bugfix
2018-04-10 15:06:56 +03:00
Talkashie
64992f758d
Fix typos ( #4410 )
...
* MASSIVE TYPO FIX part 1
* ANOTHER HUUUUGE TYPO FIX part 2
* thank you :hcorion: for all of your help. I could not have done this without you
2018-04-08 01:01:39 +01:00
kd-11
568118634e
vk: Squash some spec violations that went unnoticed
2018-04-05 01:06:50 +03:00
kd-11
cfd0b8a975
rsx: Fix alphakill
2018-04-05 01:06:50 +03:00
kd-11
93b2776604
rsx: Fix vertex input detection
...
- Properly detect inline array registers vs constant value registers
- Silence needless spam, 306E is 2D surface engiine, the assumption that y is multiplied by 306E pitch is not crazy
2018-04-05 01:06:50 +03:00
kd-11
53f2533a08
rsx: Implement proper Z-order curve in 3 dimensions
...
- Should fix garbage palette textures getting uploaded (LSD graphics)
2018-04-05 01:06:50 +03:00
kd-11
e291494282
rsx: Texture cache updates
...
- Properly implement section gather for 3d and cubemaps
Implements render-to-3d and fixes some corner cases for render-to-cubemap
2018-04-05 01:06:50 +03:00
Nekotekina
da9baac842
Improve save data dialog
...
Bug fix: don't display new data entry when not asked for
Use icon/title provided by the game for the new data entry
Display new data entry at the beginning of list when necessary
Minor cellSaveData cleanup
2018-04-02 16:27:28 +03:00
Jake
6d6d6fa827
dx12/vk/gl: implement use of vertex_data_base_index when calculating index
2018-03-30 13:30:04 +03:00
kd-11
ee0fe28ddc
rsx: Fix copypasta
2018-03-29 13:52:11 +03:00
kd-11
7627ad04f1
rsx: Disable gamma control on WZYX textures
...
- Gamma is seemingly used for (D/X/A)RGB only. Data textures are unaffected
2018-03-29 13:52:11 +03:00
kd-11
f559c088a1
rsx: Dubious fix for broken B8 swizzle remap
2018-03-29 13:52:11 +03:00
pauls-gh
a17025c465
Strict Rendering Mode (SRM) fix. Move old surface copy before texture upload.
...
Fixes the following issues on Tales of Vesperia which requires SRM.
- Blacked out scene after the sleeping dog now renders correctly
- Ghosting effect. The ghosting was most noticeable as a delay between the character rendering and the cell shading around the character. This appears to be gone with this change.
2018-03-29 11:01:58 +03:00
kd-11
fca6c4fb7f
vk: Improve compatibility workarounds
...
- Disable fence reset on gcn1 - gcn3
- Enable polaris+ workarounds on linux if proprietary driver is used
2018-03-28 11:30:11 +03:00
Kravickas
e6cb4df877
Fix a typo in gcm_enums.cpp ( #4333 )
...
* Update gcm_enums.cpp
2018-03-27 18:43:38 +01:00
kd-11
5aac8aa424
rsx: Clamp negative fog distance
2018-03-25 16:02:47 +03:00
kd-11
887ea43e39
rsx: Fix some texture cache problems
...
- gl/vk: Properly handle remapping temporary resources
2018-03-25 13:31:06 +03:00
kd-11
9fce5b0f7a
gl: Fix leaking occlusion queries
...
- GL queries share the target binding (not asynchronous!)
- Discard active queries by closing them, leave closed queries alone (nothing to be done for discard op)
2018-03-25 13:31:06 +03:00
kd-11
22af70d0d0
gl: Always use indexed blend caps to avoid conflict with the state cache.
...
- glEnable/glDisable should not be used with GL_BLEND as the main renderer uses the indexed variant
2018-03-25 13:31:06 +03:00
kd-11
321c360dcb
rsx: Overhaul rendertarget sampling/shuffles
...
- Reimplements render target views used for sampling
- Optimizes access using an encoded control token
- Adds proper encoding for 24-bit textures (DRGB8 -> ORGB/OBGR)
- Adds proper encoding for ABGR textures (ABGR8 -> ARGB8)
- Silence some compiler warnings as well
- TODO: Real texture views for OGL current method is a hack
2018-03-25 13:31:06 +03:00
kd-11
9bb1ed78f9
gl: Implement video-out calibration for gamma and dynamic range
...
- Seems to be of limited use but if it is determined to be useful, a vulkan implementation can be done
2018-03-25 13:31:06 +03:00
kd-11
9fc1740608
rsx/fp: Fragment program overhaul
...
- Separate TXB from TXL: They are completely different!
- Properly perform TMU emulation in the fragment shader. Implemens SRGB conversion and alphakill at the moment
- Properly perform ROP emulation in the fragment shader. Implements FRAMEBUFFER_SRGB. While support on the chip looks to be incomplete (and wierd), it does work
- Document some more bits in SHADER_CONTROL register
2018-03-25 13:31:06 +03:00
kd-11
c6a2525c9b
video out: Set up video configuration options in fxm
...
- TODO: Actually do something with the values
2018-03-25 13:31:06 +03:00
kd-11
aeebeed0f2
vk: Fix AMD primitive restart emulation when strict mode is active
...
The restart emulation is there to keep the proprietary drivers from randomly crashing when using primitive restart
2018-03-25 13:31:06 +03:00
kd-11
9f416e5ce1
rsx/gl/vk: Obey channel remapping on framebuffer resources if requested
2018-03-25 13:31:06 +03:00
kd-11
27552891ad
rsx/fp: Improvements
...
- Export some debug information in the free texture register space components zw
Very useful when analysing renderdoc captures
- Enable shadow comparison on depth as long as compare function is active and texture is uploaded for depth read
Some engines (UE3) read all the components in the shader and use mul/mad with the result
2018-03-25 13:31:06 +03:00
kd-11
5817f9fe3f
rsx: Texture format fixes
...
- Implement SRGB (gamma corrected) textures (DXT1, DXT3, DXT5, RGBA8 only)
- Fix channel map decode for XY data texture formats
- Fix remap layout for X16 textures (verified with Mass Effect 3)
2018-03-25 13:31:06 +03:00
scribam
50446f7fef
Partial compilation fixes for osx
2018-03-24 11:14:40 +00:00
pauls-gh
44cddda4b4
Fix VTC source index increment
2018-03-23 12:01:30 +03:00
pauls-gh
d79a544320
VTC tiling - fix source offset increment.
2018-03-23 12:01:30 +03:00
pauls-gh
e5b4710471
Add end condition for VTC copy. This handles the case when depth is not a multiple of 4.
2018-03-23 12:01:30 +03:00
pauls-gh
e6010ba2ca
Fix code formatting
2018-03-23 12:01:30 +03:00
pauls-gh
fd8d2ecbf4
Remove Volume Texture Compression (VTC) tiling for Vulkan, DX12 and ATI (OpenGL).
2018-03-23 12:01:30 +03:00
Megamouse
9d961f620b
rsx/Qt: add option to disable the shader compilation hint
2018-03-22 16:33:37 +04:00
GeniusMage
4e2a8a3cdb
Teepo fix
...
2D isn't always > 3D
2018-03-21 13:40:34 +03:00
kd-11
92fb828d52
gl: Compat support for mesa drivers Needs CLIENT_STORAGE bit set for persistent buffers to make them useful
2018-03-20 00:11:41 +03:00
kd-11
d13584f858
rsx: fixups
...
gl/vk: Bump shader cache version
gl/vk: Disable anisotropic override when strict mode enabled as it is proven to alter some games negatively
gl: Clamp buffer view range to not exceed the backing buffer size. Also add assert for the same condition
2018-03-19 12:13:34 +03:00
kd-11
5f047034ae
rsx: Disable async count verification to avoid lockup due to zombie reports in ZCULL
2018-03-13 18:55:03 +03:00
kd-11
ffe6c9ba5a
fix linux builds
2018-03-13 18:55:03 +03:00
kd-11
910fc54ee2
vk: Implement reading from cell if swap image isn't found
2018-03-13 18:55:03 +03:00
kd-11
f00d9a7c7f
rssx" Halfplement alpha-to-coverage AA transparency
2018-03-13 18:55:03 +03:00
kd-11
2dce55d036
rsx: ZCULL synchronization fixes
...
- Track asynchronous operations in RSX core
- Add read barriers to force pending writes to finish.
Fixes zcull delay flicker in all UE3 titles without forcing hard stall
- Increase zcull latency as all writes should be synchronized now
2018-03-13 18:55:03 +03:00
kd-11
315798b1f4
rsx: ZCULL rewrite and other improvements
...
- ZCULL unit emulation rewritten
- ZCULL reports are now deferred avoiding pipeline stalls
- Minor optimizations; replaced std::mutex with shared_mutex where contention is rare
- Silence unnecessary error message
- Small improvement to out of memory handling for vulkan and slightly bump vertex buffer heap
2018-03-13 18:55:03 +03:00
kd-11
dece1e01f4
rsx: Improve transform constants management
...
- Removes the duplicate local_transform_constants
- Resets the transform constants on every context reset
- Simplifies the code abit which should make it faster
- NOTE: Transform constants are persistent across context re-init events (VF5)
2018-03-13 18:55:03 +03:00
kd-11
a19ffba8e8
rsx: Simplify MRT blend setup; Enable separable MRT blend on vulkan and fix corner cases for GL
2018-03-13 18:55:03 +03:00
kd-11
e230867492
rsx: Properly implement raster window offsets
2018-03-13 18:55:03 +03:00
kd-11
0c8e4c0887
rsx: Improve FIFO commandlist flattening
...
- TODO: Alot of work is still needed to execute draw commands out of order
Thats the only solution to games sending many draw calls with high frequency of state changes
2018-03-13 18:55:03 +03:00
kd-11
84b8a08d26
rsx: Basic performance counters
2018-03-13 18:55:03 +03:00
kd-11
2855869530
vulkan: Support APPLE
...
- Adds support for compilation on MAC with moltenVK. Note that vulkan does
not work on MacOS yet. There are two main blockers:-
1) Texture component swizzles are not supported except for
RGBA8_UNORM->BGRA8_UNORM.
2) There is a bug in their SPIR-V -> MSL generator.
GLSL.std.450.xxxx functions are not implemented which breaks rpcs3
functionality. Trying to compile a vertex shader will throw because
unpackHalf2x16 is missing.
2018-03-13 18:55:03 +03:00
kd-11
d41b49d8b4
rsx/fp: Color output registers are always present and zero initialized
...
- According to NV_fragment_program spec, registers are zero initialized always
- A program even without writing to these registers will have black (0, 0, 0, 0) output
Confirmed behaviour with MotorStorm games. Their engine uses this quirk to clear color buffers when doing depth replace
Might be an unfixed game bug
2018-03-13 18:55:03 +03:00
kd-11
4804efc17d
rsx: Clear up confusion on depth writes.
...
According to the NV_fragment_program spec, its not feasible to have 16-bit depth wries
NOTE: NV_fragement_program precedes NV_fragment_program2 which is very
close to what RSX consumes. It is hardware from that era afterall
2018-03-13 18:55:03 +03:00
kd-11
053ab585f4
gl/vk: Clean up some format casts
...
- TODO: Byte ordering considerations on data casts
2018-03-13 18:55:03 +03:00
kd-11
20d4c09a1c
rsx/vk/gl: Enforce format matching for render target resources. Fall back to raw data copy if match fails
...
- Forces Bitcast of texture data if input format cannot possibly be the
same as the existing texture format
- rsx: Other minor improvements to texture cache :-
- remove obsolete blit engine incompatibility warning. The texture will be re-uploaded if it is indeed incompatible
- Implement warn_once and err_once to avoid spamming the log with systemic errors
- Track mispredicted flushes
- Reswizzle bitcasted texture data to native layout
TODO: Also needs reshuffle according to input remap vector
2018-03-13 18:55:03 +03:00
kd-11
68b3229756
rsx/fp: Improve rgister component gather detection
...
- Also avoids clobbering register data by keeping gathered bits in a temp var
2018-03-13 18:55:03 +03:00
kd-11
87741141f1
rsx/vulkan: Add post-compilation key validation and dynamically determine attachment write maks based on decompiled shader
...
- A new step is added between decompilation and pipeline object creation allowing for properties to be updated based on shader contents
- Allos masking off attachment writes that are unmodified in the shader
2018-03-13 18:55:03 +03:00
kd-11
705820c430
rsx: Nvidia driver compatibility workarounds
...
- Sanitize NaN values before they reach the driver. On nvidia (X * NaN = X)
2018-03-13 18:55:03 +03:00
kd-11
6b23e733d0
rsx/gl/vk: Improvements
...
- gl: Do not call makeCurrent every flip - it is already called in set_current()
- gl: Improve ring buffer behaviour; use sliding window to view buffers larger than maximum viewable hardware range
NV hardware can only view 128M at a time
- gl/vk: Bump transform constant heap size When lots of draw calls are issued, the heap is exhaused very fast (8k per draw)
- gl: Remove CLIENT_STORAGE_BIT from ring buffers. Performance is marginally better without this flag (at least on windows)
2018-03-13 18:55:03 +03:00
kd-11
07cbf3da48
rsx/gl: Minor fixes
...
- Identify depth textures reaching the gpu via shader_read upload path
- Use correct timestamp counter for opengl
- inline draw_state::test_property because msvc doesnt do it for us
2018-03-13 18:55:03 +03:00
kd-11
af1b13550b
rsx/vk: More optimizations
...
- Do not bother rechecking the dirty sampler pool for hits. Its faster to create new sampler than to search the pool
- Reserve some memory on vertex layout struct to reduce reallocation penalty
2018-03-13 18:55:03 +03:00
kd-11
8ccaabb502
vulkan: Optimize vertex data upload
...
- Reuse buffer views as much as possible, vkCreateBufferView is slow on NV
Implemented as a large sliding window, reuseable until it is filled
2018-03-13 18:55:03 +03:00
kd-11
01349b8cee
rsx: Texture cache fixes - Optionally attempt to merge framebuffers into an atlas if partial resources are missing - Support for data update requests to the temporary subresource handler This is useful for framebuffer feedback loops where a new copy is needed after every draw call (resource is always dirty)
2018-03-13 18:55:03 +03:00
kd-11
4487cc8e7a
Remove an ugly hack pertaining to partial framebuffer-resident texture data - Its better to fill in the missing information with a wrap or clamp than to fake the texture reads in valid regions - Texture coordinate scaling is used to fill in for the cropped dimension available
2018-03-13 18:55:03 +03:00
Jake
3a9428a88e
rsx: Fix alpha test on VK/GL
...
Moving alpha test outside of fp_main. This enforces alpha test is still done even if shader asm has early return
2018-03-09 18:06:20 +03:00
Jake
7233640cf0
rsx: add vertex data base to offset and mask before translating address
2018-03-07 16:57:20 +03:00
Megamouse
6141bc5598
Fix firmware installation for vfs
2018-02-28 17:27:06 +04:00
kd-11
4c6ceeff11
rsx/vk: Cleanup
...
- Silence some warnings, remove dprints
2018-02-21 14:59:46 +03:00
kd-11
77f2b521e1
vulkan: Swapchains reimplemented
...
- Adds support for abstract implementations
- Adds native windowing implementations for WIN32 and X11 as fallbacks
when present support is lacking (headless configs)
2018-02-21 14:59:46 +03:00
kd-11
ee88e7f948
rsx/gl: Hotfix for GL format compatibility check when high precision depth buffers is enabled
2018-02-16 16:14:54 +03:00
kd-11
ebb9fc7cd9
vk/drivers: Restore polaris+ patch to disable primitive restart
2018-02-16 16:14:54 +03:00
kd-11
32f0e91893
vulkan: Improve primitive restart workaround for vega/polaris
...
- For some reason the hardware forgets that primitive restart is enabled and tries to actually read vertex index 65535
- Works correctly if uint32 vertex indices are used instead of uint16 for cases where primitive restart is active
2018-02-16 16:14:54 +03:00
kd-11
a8ab408f64
rsx: Account for null blit ops (memcpy)
...
- Do not perform extra memory tasks if no actual image copy was performed
2018-02-16 16:14:54 +03:00
kd-11
661b8b006f
rsx: Add texture readback statistics to the texture cache and debug overlay
2018-02-16 16:14:54 +03:00
kd-11
1bd77c2f51
rsx: Add cache pattern checking to blit engine resources
...
- Feature was implemented long ago but was not functional due to bugs
2018-02-16 16:14:54 +03:00
kd-11
c191a98ec3
vulkan API fixes
...
- Fix for texture barriers
- vulkan: Rework texture cache handling of depth surfaces
- Support for scaled depth blit using overlay pass
- Support proper readback of D24S8 in both D32F_S8 and D24U_S8 variants
- Optimize the depth conversion routines with SSE
- vulkan: Replace slow single element copy with std::memcpy
- Check heap status before attempting blit operations
- Bump guard size on upload buffer as well
2018-02-16 16:14:54 +03:00
kd-11
3bbecd998a
infinitesimal fixes
2018-02-16 16:14:54 +03:00
kd-11
3406cc9886
gl: Fix save binding state for cube textures
2018-02-16 16:14:54 +03:00
kd-11
bd297d079d
rsx: Minor optimizations
2018-02-16 16:14:54 +03:00
kd-11
a5500ebfa4
rsx: Fix disjoint draw range splitting
...
- Fixes flickering and missing draws in R&C and other games such as Motorstorm Apocalypse and Okami HD when strict mode is disabled
2018-02-16 16:14:54 +03:00
kd-11
a64bea1286
rsx/fp: Discard shaders with undefined (non-existent) writes. On nvidia+vulkan, undefined writes autofill with blue color
2018-02-16 16:14:54 +03:00
kd-11
b67f28e00d
rsx/texture_cache: Do not access non-existent components
2018-02-16 16:14:54 +03:00
kd-11
89c548b5d3
rsx: fbo fixes 2.5
...
- Implement flush-always behaviour to partially fix readback from a currently bound fbo
- Without this, only the first read is correct, as more draws are added the results become 'wrong'
- Fixes WCB and cpublit behviour
- Synchronize blit_dst surfaces to avoid data loss when gpu texture scaling is used
- Its still faster in such cases to disable gpu texture scaling but some types cannot be disabled without force cpu blit (e.g framebuffer transfers)
- Memory management tuning
- rsx: on-demand texture cache rescanning for unprotected sections
- rsx: Only framebuffer resources are upscaled
- Do not resize regular blit engine resources
- Lazy initialize readback buffer when using opengl
-- These measures should help minimize vram usage
2018-02-16 16:14:54 +03:00
kd-11
02e571adbc
gl: Cleanup some more things
...
- Avoid referencing GL's null texture
- Improve texture creation helpers
- Remove useless __glcheck from GLHelpers.cpp
2018-02-16 16:14:54 +03:00
kd-11
98e50d3064
gl: Reuse framebuffer textures whenever possible
2018-02-16 16:14:54 +03:00
kd-11
f20fd217f8
rsx: Reorganize framebuffer setup code
...
- Fixes some fast paths for framebuffer creation and binding
2018-02-16 16:14:54 +03:00
Nekotekina
d2652aedd2
VK: add two options (workarounds)
...
Force FIFO present mode option is workaround for recent MESA drivers
Force primitive restart flag should also work on said drivers
2018-02-11 19:52:14 +03:00
Nekotekina
cce0ad0c35
Clean vm::ps3 namespace use
2018-02-09 17:49:37 +03:00
Nekotekina
76be7d40ac
Remove PSP2
2018-02-09 15:24:46 +03:00
kd-11
e7537cded5
vk: Also discard background if window is too small in vertical axis
2018-02-02 10:07:55 +03:00
kd-11
ea8bdda9a3
rsx/gl/vk: Support for swizzled? context surfaces
...
- For some surfaces, dimensions are passed via the log2 bits rather than surface pitch
-- This is similar to the setup for nv406e and probably means the surfaces are padded and swizzled
2018-02-02 10:07:55 +03:00
kd-11
eeb6e29e39
vulkan: implement proper texture read barriers
2018-02-02 10:07:55 +03:00
kd-11
b9cca71c47
gl: API compliance fixes
...
- Do not assume texture2D when creating new textures
- Flag invalid texture cache if readonly texture is trampled by fbo memory.
Avoids binding a stale handle to the pipeline and is rare enough that it should not hurt performance
2018-02-02 10:07:55 +03:00
Zion Nimchuk
70fe0cc224
Install and load icons from Icons in executable directory, fixes local builds using Icons
2018-01-31 01:01:33 +04:00
kd-11
4f7d3e5dc1
vk: Stuff
...
- Remove subpass dependencies; transitions are handled via exicit imagememrybarriers
- Reuse sampler objects whenever possible; create/delete cycles are not free
2018-01-30 21:16:43 +03:00
kd-11
33bcdd476c
glsl/fp/vp: Avoid shader clutter
...
- Do not add unused subroutines in shaders unless necessary
-- makes shaders easier to read and disassembled spir-v has less clutter
- glsl: Replace switch block with lookup table
2018-01-30 21:16:43 +03:00
kd-11
2e04dceaf0
rsx: misc fixes
...
- Supply explicit options for spv emit allowing optimizations (not yet compiled into the backend)
- Add epsilon fix to glslcommon
- Fix shader dialog crash when using qt (race condition)
2018-01-30 21:16:43 +03:00
kd-11
648fc92184
rsx/fp/vp: Epsilon value is too large!
...
- Original epsilon value was 1.E-10 which nvidia linux driver could not read properly
-- Restores the original value represented in decimal notation
2018-01-30 21:16:43 +03:00
kd-11
c05d164eee
gl: Implement swap control on linux
2018-01-30 21:16:43 +03:00
Juhn
d37aa466ff
Fix native UI save_dialog when there are no saves ( #4113 )
...
- Also implements single action list view with cancel action only
2018-01-30 16:26:00 +03:00
ZeroZero2018
cd8e97a7c6
Fix to B8 format render target swizzling ( #4123 )
2018-01-29 21:58:25 +03:00
Zangetsu38
c8965564e4
vk/ogl: Fix regression for G8B8
2018-01-24 20:20:28 +03:00
Jake
efe6a6cf53
rsx: fixed emulated primitive restart
2018-01-24 16:28:09 +00:00
Jake
2f414f96bf
rsx: fix potential hang during thread close
2018-01-24 16:28:09 +00:00
kd-11
4f01794713
Minor fixes
...
- vulkan: Do not assume an aux frame context must exist in a well defined state as set in init_buffers() since the request might be external (via overlays path)
- gl: Do not bother waiting for idle before servicing external flip requests
- gl: Queue overlay cleanup requests to ensure only glthread attempts touching the context
- overlays: Do not compute size metrics for invalid/unsupported glyphs
2018-01-22 11:43:35 +03:00
kd-11
3d9e3a16f1
rsx/gl/vk: Fixes and optimizations
...
- opengl driver optimization for nvidia. On nvidia glTextureBufferRange performance is horrendous
-- Initialize texture buffer to whole buffer at startup and use absolute offsets to read data instead
-- Over 2x performance in some cases (Resogun, TNT racers)
- gl/vk: Do not flip non-existent display buffers. Fixes spec violation at boot in TNT racers demo
- whitespace fixes for sys_rsx
2018-01-22 11:43:35 +03:00
kd-11
fcd702c8a6
rsx: Texture format fixes
...
- Implement low bit decode override flags for 2-component textures
- Properly implement alot of texture remaps according to the autotest results
rsx: Do not unnecessarily shuffle WZYX->RGBA unless we have proof
- From looking at format swizzles, this is incorrect
2018-01-22 11:43:35 +03:00
kd-11
743928b379
vk/gl: Preserve clamped z precision to some extent
...
- Use edges of depth range to map clamped stuff
Disable range compression on regular draws vs extended range draws
- Some applications require full 0-1 usage without compromises.
-- TODO: This leaves the extended range z values to fight with regular draws in the .99 - 1.0 range
2018-01-22 11:43:35 +03:00
Zion Nimchuk
49e64b9e82
install icons to /usr/share and load them from there
2018-01-19 12:44:01 +03:00
kd-11
6828fbf658
rsx/texture_cache: Remove hacks; it has been proven that in offsets are in x16 fixed point
2018-01-19 12:03:57 +03:00
kd-11
0a2992839b
rsx/gl/vk: Simulate z clipping with selective depth clamp
...
- The scale offset matrix is fine but on real hardware the z results seem to be independent of near/far clipping distances
-- If depth falls within near/far, clamp depth value to [0,1]
2018-01-19 12:03:57 +03:00
kd-11
1a6e53ec98
overlay: Fixes
...
- Add fallback fonts including attempting to find glyphs in dev_flash
- Fix vulkan hang on startup if icons are not present
2018-01-19 12:03:57 +03:00
kd-11
9ec2337192
rsx: Synchronization improvements
...
- Always flush the primary queue and wait if not involking readback from rsx thread
-- Should fix some instances of device_lost when using WCB
-- Marked remaining case as TODO
-- TODO: optimize amount of time rsx waits for external threads trying to read
2018-01-19 12:03:57 +03:00
kd-11
cbc8bf01a1
cell/scheduler: Manage thread placement depending on cpu hardware
2018-01-19 12:03:57 +03:00
Megamouse
d238791b7d
RSX: properly handle disconnected pads
2018-01-18 21:18:56 +03:00
kd-11
71f69d1d48
rsx/overlays: Introduce 'native' HUD UI and implement some common dialogs ( #4011 )
2018-01-17 19:14:00 +03:00
TGEnigma
28a96f1543
Add option to disable on-disk shader cache ( #4041 )
2018-01-15 19:23:36 +03:00
myfreeweb
15d0bdb7cf
Detect Vulkan Xlib/Wayland surface support at runtime ( #4048 )
...
Detect Vulkan Xlib/Wayland surface support at runtime
2018-01-14 22:16:06 +03:00
Jake
0477f8ed3c
rsx: add log for potential source of error
2018-01-14 20:50:55 +03:00
Jake
7ca2c444cc
rsx: Fix depth clipping
2018-01-14 20:50:55 +03:00
Jake
c5074ba81f
d3d12: fix invalid framebuffer crash and shader compile
2018-01-14 20:50:55 +03:00
Jake
ac53fc54dc
rsx: fix image_in arg and swizzle fix
2018-01-14 20:50:55 +03:00
Greg V
fbceec47b8
Add support for Vulkan on Wayland
...
The variable VK_USE_PLATFORM_WAYLAND_KHR is actually used by the Vulkan
header, so use it here too.
2018-01-11 12:26:41 +03:00
kd-11
ee009ec99c
rsx: Robustness fixes
...
- Track last working state and reset to it if RSX starts to desync
-- This is especially useful when running vulkan since the renderer will easily outpace the rest of the system when merely recording draw commands
- Ignore empty sets
-- Mark empty/invalid IB sets as having 0 element counts.
2018-01-02 21:17:56 +03:00
lewmpk
d64e79bd9f
fix clang warning: logical-op-parentheses
2017-12-31 22:08:17 +03:00
kd-11
1ea5e7404a
rsx: Workaround for nvidia linux
...
- For some reason, using 1.E-x notation does not work on nvidia linux. Could be a bug in spir-v generator or the driver itself
2017-12-31 12:43:40 +03:00
kd-11
55c324e062
rsx: Invalidate surface configuration if stencil state is changed
...
- Stencil state afects validity of a depth/stencil surface same as depth state
2017-12-31 12:43:40 +03:00
kd-11
d496dbecad
rsx: Implement depth clamping
2017-12-31 12:43:40 +03:00
kd-11
4872be9de3
rsx/vk: Synchronize access to queue submit calls
...
- Should prevent concurrent access on the present/graphics queue
2017-12-31 12:43:40 +03:00
kd-11
688569e5c8
gl: Remove flag test optimization as it does not work properly
...
- Most texture cache operations will break sampler state and the extra complexity is not worth the very small speed bump
2017-12-31 12:43:40 +03:00
kd-11
8b31a9448a
vulkan: Tweaks to sampler state fallback paths
...
- Make all texture access on non-existent textures return 0
- If border color is closer to 0, then set alpha to 0 as well (might break some corner cases with alpha test)
- Zero initialize null sampler
2017-12-22 20:08:14 +03:00
kd-11
4819847c46
rsx: Modify semaphore_acquire timeout detection
...
- Take paused state into account
- Make timeout configurable
2017-12-22 20:08:14 +03:00
kd-11
d6bc6ec2c1
rsx: fix initial swizzle ordering for render target data
2017-12-22 20:08:14 +03:00
kd-11
320fb5f94c
rsx/fp: Fix alphakill
2017-12-22 20:08:14 +03:00
kd-11
4a0c4259f0
c++ is hard
...
- Remove unnecessary const definitions
2017-12-22 20:08:14 +03:00
Nekotekina
61de20a633
RSX: remove SSSE3 dependency
2017-12-20 00:04:08 +03:00
kd-11
de5dab35e0
rsx: Raise semaphore timeout duration bacause some games are very slow
2017-12-18 10:45:37 +03:00
kd-11
47060cdc5f
rsx/fp: Fix typo
2017-12-18 10:45:37 +03:00
kd-11
7dd349ae8e
Update FragmentProgramDecompiler.cpp
2017-12-18 10:45:37 +03:00
kd-11
4e80858bed
rsx/fp: Hotfix for TEXBEM/TXPBEM
2017-12-18 10:45:37 +03:00
kd-11
e89a035e8b
rsx/fp: Implement TXPBEM
2017-12-18 10:45:37 +03:00
kd-11
f7c52d3bb7
rsx/fp: Implement TEXBEM (untested)
2017-12-18 10:45:37 +03:00
kd-11
6f8dd20f03
rsx/fp: Stuff
...
- Implement BEM
- Add LG2 to special instructions
2017-12-18 10:45:37 +03:00
kd-11
b1a1c0251f
rsx: Implement variable point size
2017-12-18 10:45:37 +03:00
kd-11
0d0821e914
rsx: Pause FIFO queue when changing ctrl registers
2017-12-18 10:45:37 +03:00
kd-11
6891323c18
rsx: framebuffer textures do not have mipmaps!
...
- Force mipmap count to 1 if sampling from an RTV/DSV
- TODO: Better wcb flush detection, it should be better to re-upload the texture after it has been dwnloaded if expected mipmaps are > 1
2017-12-18 10:45:37 +03:00
kd-11
7c7cd4153e
rsx: Framebuffer setup fixes
...
- Sometimes square renders are done to surfaces with pitch=64 and re-uploaded with swizzle scanning
-- This setup avoids discarding targets if they are square and pitch == 64
2017-12-18 10:45:37 +03:00
kd-11
ff0f1510e5
rsx: Minor fixes
...
- Abort nv406e semaphore acquire if the rsx thread stalls/crashes
- Fix texture size approximation to take mipmaps into account. Fixes some games hanging with WCB
2017-12-18 10:45:37 +03:00
kd-11
3338fdb936
rsx: Fix RGB565 blits. Data is byteswapped on input
...
- Fixes messed up BG on retroarch glyphs
2017-12-18 10:45:37 +03:00
kd-11
6dfe32c6d2
fix linux builds
2017-12-18 10:45:37 +03:00
kd-11
95966a467e
rsx: Texture cache fixes
...
- Handle blit resources in a more consistent way
- TODO: Handle some corner cases (piyotama)
2017-12-18 10:45:37 +03:00
kd-11
ac0022483a
rsx: Implement delayed swizzle remap for blit engine resources
...
- Fixes remap vectors for memory copied via blit engine as it has no context
2017-12-18 10:45:37 +03:00
Jake
d0013679c0
rsx: fix image_in swizzled texture crash
2017-12-08 15:19:17 +04:00
kd-11
0b3fbf1d4c
rsx: Narrow the race condition window further
...
- Needs aliased paging to be implemented to fix properly or a re-entrant global IO lock
2017-12-06 12:55:49 +03:00
kd-11
69eb483089
rsx: Framebuffer setup fix
...
- Stencil flag is meaningless if surface does not support stencil
2017-12-06 12:55:49 +03:00
kd-11
a2b4cf22b5
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
2017-12-06 12:55:49 +03:00
kd-11
970d2a06e0
rsx: Properly fix DATA3F_M register alignment
2017-12-04 18:22:18 +03:00
kd-11
9853027f72
rsx/vp: Decide default return values in case of undefined attributes based on location ID
...
- Different default values should be returned for different attributes
2017-12-04 18:22:18 +03:00
kd-11
90c2324e47
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
2017-12-04 18:22:18 +03:00
kd-11
f5145943b2
d3d12: Fix fragment shader compile
2017-12-04 18:22:18 +03:00
kd-11
960f26f84e
rsx:: fixes for framebuffer setup
...
- provide a DSV if depth and/or stencil testing is enabled
2017-12-04 18:22:18 +03:00
kd-11
cdd4fd9867
rsx/fp: Explicitly insert global functions.
...
- Functions such as pack/unpack ops must exist before the shared gather functions are declared
2017-12-04 18:22:18 +03:00
kd-11
3fbc960c44
gl/vk: Better handling of inter-format data copies
...
- RGBA8->RG16 does not require special instructions so the overlay pass is disabled for OGL
2017-12-01 21:00:50 +03:00
kd-11
896c8991de
rsx/fp: Properly implement PK/UP instructions based on NV_fragment_program documentation
2017-12-01 21:00:50 +03:00
kd-11
bec6c1a939
gl: Implement rgba8 -> fp16 casting pass
...
-- Is this actually necessary? The two format are binary compatible
2017-12-01 21:00:50 +03:00
kd-11
fe9090bd39
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
2017-12-01 21:00:50 +03:00
kd-11
44e34064de
vulkan: Do not clear non-existent surfaces
2017-12-01 21:00:50 +03:00
kd-11
a18ae0f6ac
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
2017-12-01 21:00:50 +03:00
kd-11
08b829dc22
rsx: wcb scaling fixes
2017-12-01 21:00:50 +03:00
kd-11
9d27ac359b
gl: Minor wcb tweaks
2017-12-01 21:00:50 +03:00
kd-11
6c9c300fe0
rsx: Fix texture cache memory usage statistics
2017-12-01 21:00:50 +03:00
kd-11
17340c44cc
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)
2017-12-01 21:00:50 +03:00
kd-11
90a3f3af30
rsx: Discard queue if RET is found without CALL
2017-12-01 21:00:50 +03:00
kd-11
da1e97618b
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
2017-12-01 21:00:50 +03:00
kd-11
89bc333295
vk: Compliance fixes; vkCmd state affects currently bound descriptor set!
2017-12-01 21:00:50 +03:00
kd-11
3350e7ee55
rsx: Fixes for framebuffer setup code
2017-12-01 21:00:50 +03:00
kd-11
ddebc334bf
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
2017-12-01 21:00:50 +03:00
kd-11
145ecb00fc
rsx: Texture cache hotfixes
2017-12-01 21:00:50 +03:00
kd-11
75d0ff177d
gl: Avoid null deref
2017-12-01 21:00:50 +03:00
kd-11
4d75e98647
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
2017-12-01 21:00:50 +03:00
kd-11
3bfdcf698d
rsx: More tuning for depth/color buffer selection
2017-12-01 21:00:50 +03:00
kd-11
51891039dd
rsx: improve depth/color contested memory allocation heuristics
...
- Needs more tests to prove correct behaviour
2017-12-01 21:00:50 +03:00
kd-11
07fe5f87ae
gl: Fix face winding
...
- Face winding is always calculated based off the top left corner
2017-12-01 21:00:50 +03:00
kd-11
de5a4fe083
rsx: Reimplement depth <-> RGBA reinterpretation code
...
- Implements proper channel order for fp24-ARGB8 conversion
- Takes swizzle remap into account when reconstructing source bytes
2017-12-01 21:00:50 +03:00
kd-11
5cf2d774f3
fp32 precision on GPUs is embarassing
...
- Division seems to suffer from drift easily on GPUs due to limited precision
2017-12-01 21:00:50 +03:00
kd-11
ccc0383f75
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
2017-12-01 21:00:50 +03:00
kd-11
680ca1d12a
rsx: Zcull refactoring and vulkan implementation
2017-12-01 21:00:50 +03:00
kd-11
c926868758
vk: Dont always assume framebuffers exist
...
- TODO: Use temporary renderbuffers for these outputs
2017-12-01 21:00:50 +03:00
kd-11
30269e5bad
rsx/gl: Use strict method of gathering the depth buffer bits
...
- Performance difference on modern GPUs is negligible
2017-12-01 21:00:50 +03:00
kd-11
07f61db24a
rsx: Try to take the context for the surface creation into account
2017-12-01 21:00:50 +03:00
kd-11
63f261a66d
rsx: Improve framebuffer check heuristics for contested memory buffers
2017-12-01 21:00:50 +03:00
kd-11
33f3a3e014
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
2017-12-01 21:00:50 +03:00
kd-11
8646f51fa3
rsx: Add more validation to framebuffer setups. Game devs sometimes do crazy things
2017-12-01 21:00:50 +03:00
kd-11
0aaae000b3
rsx: Minor improvements
2017-12-01 21:00:50 +03:00
kd-11
db58cd7513
rsx: Invalidate both depth and color surfaces when binding a new surface
2017-12-01 21:00:50 +03:00
Zion Nimchuk
3a9ae2df9e
silence warnings in RSX stuff
2017-11-30 18:07:19 +03:00
Nekotekina
d366823949
RSX: fix fix (406E semaphore release)
2017-11-27 23:15:28 +03:00
Nekotekina
1344f15efd
RSX: improve nv406e::semaphore_release
2017-11-26 09:02:37 +03:00
Jan Beich
dd5791a2cc
Fixes from FreeBSD package ( #3765 )
...
* Thread: unbreak on BSDs after dbc9bdfe02
Utilities/Thread.cpp:1920:2: error: unknown type name 'cpu_set_t'; did you mean 'cpusetid_t'?
cpu_set_t cs;
^~~~~~~~~
cpusetid_t
/usr/include/sys/types.h:84:22: note: 'cpusetid_t' declared here
typedef __cpusetid_t cpusetid_t;
^
Utilities/Thread.cpp:1921:2: error: use of undeclared identifier 'CPU_ZERO'
CPU_ZERO(&cs);
^
Utilities/Thread.cpp:1922:2: error: use of undeclared identifier 'CPU_SET'
CPU_SET(core, &cs);
^
Utilities/Thread.cpp:1923:48: error: unknown type name 'cpu_set_t'; did you mean 'cpusetid_t'?
pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cs);
^~~~~~~~~
cpusetid_t
* JIT: use MAP_32BIT on Linux and FreeBSD
Unless RLIMIT_DATA is low enough FreeBSD by default reserves lower 2Gb
for brk(2) style heap, ignoring mmap(2) address hint requested by RPCS3.
Passing MAP_32BIT fixes the following crash
Assertion failed: ((Type == ELF::R_X86_64_32 && (Value <= UINT32_MAX)) || (Type == ELF::R_X86_64_32S && ((int64_t)Value <= INT32_MAX && (int64_t)Value >= INT32_MIN))), function resolveX86_64Relocation, file /usr/ports/devel/llvm40/work/llvm-4.0.1.src/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp, line 287.
* build: unbreak -DVULKAN_PREBUILT with system glslang on Unix
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:4:10: fatal error: '../../../../Vulkan/glslang/SPIRV/GlslangToSpv.h' file not found
#include "../../../../Vulkan/glslang/SPIRV/GlslangToSpv.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/CMakeFiles/rpcs3.dir/Emu/RSX/VK/VKCommonDecompiler.cpp.o: In function `vk::compile_glsl_to_spv(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, glsl::program_domain, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >&)':
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x50e): undefined reference to `glslang::TProgram::TProgram()'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x51d): undefined reference to `glslang::TShader::TShader(EShLanguage)'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x542): undefined reference to `glslang::TShader::setStrings(char const* const*, int)'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x581): undefined reference to `glslang::TShader::parse(TBuiltInResource const*, int, EProfile, bool, bool, EShMessages, glslang::TShader::Includer&)'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x5d6): undefined reference to `glslang::TProgram::link(EShMessages)'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x5f1): undefined reference to `glslang::GlslangToSpv(glslang::TIntermediate const&, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >&, glslang::SpvOptions*)'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x5ff): undefined reference to `glslang::TShader::getInfoLog()'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x61a): undefined reference to `glslang::TShader::getInfoDebugLog()'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x630): undefined reference to `glslang::TShader::~TShader()'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x63c): undefined reference to `glslang::TProgram::~TProgram()'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x6d2): undefined reference to `glslang::TShader::~TShader()'
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x6de): undefined reference to `glslang::TProgram::~TProgram()'
rpcs3/CMakeFiles/rpcs3.dir/Emu/RSX/VK/VKCommonDecompiler.cpp.o: In function `vk::initialize_compiler_context()':
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x6f5): undefined reference to `glslang::InitializeProcess()'
rpcs3/CMakeFiles/rpcs3.dir/Emu/RSX/VK/VKCommonDecompiler.cpp.o: In function `vk::finalize_compiler_context()':
rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp:(.text+0x856): undefined reference to `glslang::FinalizeProcess()'
* build/msvc: add missing glslang include directory after 6bb3f1b4d75c
"c:\projects\rpcs3\rpcs3\VKGSRender.vcxproj" (default target) (15) ->
(ClCompile target) ->
Emu\RSX\VK\VKCommonDecompiler.cpp(4): fatal error C1083: Cannot open include file: 'SPIRV/GlslangToSpv.h': No such file or directory [c:\projects\rpcs3\rpcs3\VKGSRender.vcxproj]
2017-11-21 01:56:25 +04:00
kd-11
5d87ef86b5
vk: Reset renderer status whenever a window geometry event is processed
2017-11-20 15:18:57 +03:00
kd-11
df7d52b177
rsx/fp: Give abs higher prio as it invalidates any precision checks
2017-11-20 15:18:57 +03:00
kd-11
f5addbf751
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
2017-11-20 15:18:57 +03:00
kd-11
a8c0dd649e
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
2017-11-20 15:18:57 +03:00
kd-11
bbb3bdf008
rsx: Abort all drawing commands if no swapchain exists
...
- Should keep nvidia from consuming all device memory when minimized
2017-11-20 15:18:57 +03:00
kd-11
6d2dcbd164
rsx: Enable hw blit engine for local->main memory blit operations as well
2017-11-20 15:18:57 +03:00
kd-11
be6b5922dd
rsx: research native texel byte order on cpu readback (WCB) [WIP]
2017-11-20 15:18:57 +03:00
Nekotekina
9ef00b4a12
RSX: Rewrite frame limit
2017-11-15 21:00:02 +03:00
Nekotekina
dbc9bdfe02
Implement set_ideal_processor_core (linux)
2017-11-15 21:00:02 +03:00
kd-11
3c9126d91f
rsx: Ignore FENCE instruction as it seems like its ignored on realhw
...
- This is likely a compiler hint for performance reasons and not a mandate
2017-11-09 14:39:50 +03:00
kd-11
8b4836a12f
rsx: Fix shader cache version check
2017-11-09 14:39:50 +03:00
kd-11
b2a7eee1ec
rsx: Bump shader cache ver and fix blit engine crash
...
- Disables blit operations if the target will have a size of 0 in any dimension
- Bumps shader cache ver to 1.1
2017-11-09 14:39:50 +03:00
kd-11
ed21bb309f
rsx: Minor fixups
...
- Fix texture cache blit behaviour when src has AA enabled and dst is a blit dst texture with or without AA
-- This requires handling AA resolve by removing a half downscale on multisampled axes
- Return all ones when a vertex attribute is disabled.
-- Some games forget to enable vertex attributes actually needed by the fs
2017-11-08 13:15:34 +03:00
kd-11
7b3e4f5e3d
vk: Hotfix
...
- facepalm: Do not enable depth comparison mode if masquerading as RGBA color!
2017-11-08 13:15:34 +03:00
kd-11
30b3af0d12
vk: Cleanup, simplify renderpass management
2017-11-08 13:15:34 +03:00
kd-11
541cb4062b
vk: Fix shader logging
...
- Do not overwrite logged programs
2017-11-08 13:15:34 +03:00
kd-11
4e9160104a
rsx/vk/gl: Cleanup and refector glsl::getFunctionImpl
...
- Both backends now generate very similar code
2017-11-08 13:15:34 +03:00
kd-11
86fa379c78
rsx/vk: Fix unnormalized converted textures
2017-11-08 13:15:34 +03:00
kd-11
8733505d0a
rsx: Minor fixes
...
- texture_cache: Fix internal size calculation for subresources
- vk: Delay dynamic state updates until just about to draw to ensure no flush has discarded the cb state
2017-11-08 13:15:34 +03:00
kd-11
242611aa46
gl/qt: Catch segfaults in wglDeleteContext with SEH (AMD windows driver)
...
- In rare cases the driver derefs a nullptr and dies, taking the emulator with it
- From testing, it seems the vram is indeed freed when this happens so its "safe" to continue
2017-11-08 13:15:34 +03:00
kd-11
baa5a261a5
rsx: Rewrite invalidate_range_impl_base in a way that makes sense. Fixes wcb hanging
2017-11-08 13:15:34 +03:00
kd-11
3730b9d1da
rsx: More fixes
...
- Support for raster offsets in surface descriptors (looks to be unused)
- Do not tag disabled render targets when using MRT (pitch = 64)
- Add missing notify_surface_changed() call for openGL
2017-11-08 13:15:34 +03:00
kd-11
0d35363ea0
rsx: Minor optimization - dont update sampler state if texture state registers have not changed
2017-11-08 13:15:34 +03:00
kd-11
75504b3f5e
rsx: Rework context handling and stop leaking the GL ccontext
...
- GL contexts are external handles that require manual lifecycle management
2017-11-08 13:15:34 +03:00
kd-11
4ca98e53a6
rsx: Fix for unnormalized texture access
2017-11-08 13:15:34 +03:00
kd-11
300a36d3d6
rsx: Fixes for cubemap reconstruction
...
- Do not abort generation if sides are missing, replace with blank surfaces instead
- Make cubemaps scale with res scaling
2017-11-08 13:15:34 +03:00
kd-11
60c7a508a7
rsx: Refactor create_subresource_view(deferred_subresource&) and implement a subresource cache
...
- This limits the number of times an image is copied and improves performance
2017-11-08 13:15:34 +03:00
kd-11
1fa18757fc
rsx: Implement render-to-cubemap; Also simplify unnormalized samplers [WIP, DELETE SHADER CACHE, VERY SLOW]
...
- Enables real-time cubemap reflections
- TODO: Vulkan is broke; rsx is very slow with this feature
2017-11-08 13:15:34 +03:00
kd-11
fbb7186e66
rsx/gl: Addendum - Fix fragment shader to consume texture scale parameters
2017-11-08 13:15:34 +03:00
kd-11
0961a43997
rsx: Implement 1D<->2D image type casts
2017-11-08 13:15:34 +03:00
kd-11
7037504dcf
rsx: Workaround for missing AA flags on some surfaces
...
- This just doesnt work right yet. It looks like AA is being used dynamically? (RDR)
- TODO: Try to locate flags to set AA if AA mode is not changed
2017-11-08 13:15:34 +03:00
kd-11
2385029eab
gl: Shift code around to increase work done after memory transfer operations
...
- The current code is slower because memory operations are too close to their draw calls
-- This is mainly an issue with proprietary AMD drivers
2017-11-08 13:15:34 +03:00
kd-11
eed55a446c
rsx: Minor optimization
...
- Defer resolving image copy operations to the binding step
2017-11-08 13:15:34 +03:00
kd-11
bbcb6b6851
rsx: Fbo fixes 2
...
- Use AA mode to predict surface compression. Compression mode is useless without AA activated
- Rewrites most image subresource fetch routines to use the new heuristic
- Fix rsx:🧵 :find_tile. FEED000(X) can be substituted for (X) in the code
-- Fixes alot of failures when looking for tiled regions
rsx: Fix antialiased unnormalized coords
- scaling factors are inverse to allow proper coordinates to be computed in fs
2017-11-08 13:15:34 +03:00
kd-11
b95630d84a
rsx: Minor fixups
...
- Optimize framebuffer memory invalidate conditions
- Fix texture sampling of AA textures (wider by 2x surfaces)
2017-11-08 13:15:34 +03:00
kd-11
af1d3c2aa6
rsx: Improve surface store resource management
...
- vk: Use frame testing to determine invalidated resources that can be safely deleted
2017-11-08 13:15:34 +03:00
kd-11
ec3e5c547f
rsx: More fixes
...
- Tag surface store to help determine when contents have been invalidated
- Crop framebuffer textures if they are not the requested dimensions!
2017-11-08 13:15:34 +03:00
kd-11
963a87fed5
rsx: Critical fixes
...
- Remove generic throws from the rsx pipeline. Stops the rsx thread from silently dying leaving the emulator in a hung state
- Hackplement add_signed and reverse_subtract_signed blend modes
2017-11-08 13:15:34 +03:00
kd-11
173d05b54f
rsx: Optimizations
...
- Reimplement fragment program fetch and rewrite texture upload mechanism
-- All of these steps should only be done at most once per draw call
-- Eliminates continously checking the surface store for overlapping addresses as well
addenda - critical fixes
- gl: Bind TIU before starting texture operations as they will affect the currently bound texture
- vk: Reuse sampler objects if possible
- rsx: Support for depth resampling for depth textures obtained via blit engine
vk/rsx: Minor fixes
- Fix accidental imageview dereference when using WCB if texture memory occupies FB memory
- Invalidate dirty framebuffers (strict mode only)
- Normalize line endings because VS is dumb
2017-11-08 13:15:34 +03:00
scribam
4600094829
[RSX] Fix uninitialized value before usage
2017-11-04 01:28:53 +03:00
kd-11
daaa83b9ca
rsx: Fix for framebuffer validation
2017-11-04 00:08:30 +03:00
kd-11
30bba09fed
disable fb testing for partial framebuffer resources
2017-11-02 14:35:19 +03:00
kd-11
31b07f2c5c
rsx: Tweaks
...
- Optimize get_surface_subresource
- Add check_program_status time to draw call setup statistics. It can slow down games significantly
2017-11-02 14:35:19 +03:00
kd-11
f7063bb57b
vk: Improved handling of swap_bytes behaviour when using WCB
2017-11-02 14:35:19 +03:00
kd-11
e4ef85b6e0
rsx: Experimental; Try to calculate pixel offset using nv3062 pitch register since we know the target block is defined with 3062 registers
2017-11-02 14:35:19 +03:00
kd-11
c2ac05f734
rsx: Fix for rsx thread lockup due to nested access violations when WCB is enabled
2017-10-29 15:25:17 +03:00
kd-11
f8f5f9f418
vk: Allow swapchain create to fail with an error
2017-10-29 15:25:17 +03:00
kd-11
7e6d6b45d4
nvidia facepalm
2017-10-29 15:25:17 +03:00
kd-11
361e80f7dc
rsx: Tag cache blocks returned on access violation to validate data passed
...
to flush_all is up to date. Should prevent recursive exceptions
Partially revert Jarves' fix to invalidate cache on tile unbind. This will
need alot more work. Fixes hangs
2017-10-29 15:25:17 +03:00
kd-11
ce2b790d8f
rsx/qt: GsFrame improvements
...
- Identify minimize/restore events as separate from regular resize and do not react to them
- Enable message queue consumption after loading the shaders cache. Also hides the frame in this step
-- This fixes the 'start fullscreen' bug when running vulkan
2017-10-29 15:25:17 +03:00
kd-11
7abf755a57
rsx: Avoid false positives by early rejection. Should keep cache thashing to a minimum
2017-10-28 13:26:16 +03:00
kd-11
055f0e2e4a
rsx: Export more information about affected cache sections when handling violations
...
- This allows for better handling of deferred flushes.
-- There's still no guarantee that cache contents will have changed between the set acquisition and following flush operation
-- Hopefully this is rare enough that it doesnt cause serious issues for now
2017-10-28 13:26:16 +03:00
kd-11
49f4da3016
rsx: Fixes
...
- vk: Always reopen primary command buffers. They should only be closed in flush_command_queue
- If uploading a texture and there are collisions with protected buffers, do not rebuild the cache
- Perform writes via flush before reprotecting pages that were not trampled
- Only flush no pages once
2017-10-28 13:26:16 +03:00
kd-11
bf234dc668
rsx: Implement memory tags for strict mode to validate render target memory
2017-10-28 13:26:16 +03:00
kd-11
11bd65c2b5
vulkan: Flush queue before attempting to copy texture memory!
2017-10-28 13:26:16 +03:00
Jake
e0d1ac676e
rsx: invalidate surface store address when tile is unbound
2017-10-28 12:46:20 +03:00
Jake
626b9f93c4
rsx: make dmactrl get 'readonly'
2017-10-28 12:46:20 +03:00
kd-11
9c9495621c
rsx: Fix critical bug concerning transient data layout in memory
2017-10-26 00:35:45 +03:00
kd-11
d53673c6f7
rsx: Disable draw call batching when strict mode is enabled
...
- Minor bugs have been observed with it always enabled
2017-10-26 00:35:45 +03:00
kd-11
882e949f80
vk: Fix for infinite hanging in the access violation handler
2017-10-24 22:59:09 +03:00
kd-11
e6849a59a2
rsx: Better detection of framebuffer memory copy operations
...
- Still requires texture stitching to work correctly, but matching dimensions works well for now
2017-10-24 22:59:09 +03:00
kd-11
6918e265ec
rsx/vk: Be a little more frugal with texture memory to avoid running out of VRAM on 1GB cards
2017-10-24 22:59:09 +03:00
kd-11
e9f293f522
rsx: Improve separate treatment of write exceptions vs read exceptions
...
- Optimizes search functionality and avoids thrashing valid sections
2017-10-24 22:59:09 +03:00
kd-11
5fc36d64b6
fix build
2017-10-24 22:59:09 +03:00
kd-11
95e6d78689
rsx: Workaround for 0 pitch textures.
...
- Should these be ignored? Needs investigation
2017-10-24 22:59:09 +03:00
kd-11
f4a666345a
rsx: Even more texture cache fixes
...
- Fix subresource sampling
- Invalidate memory range before uploading textures to prevent hangs
2017-10-24 22:59:09 +03:00
kd-11
7a5c88a8d1
rsx: Only transfer framebuffer contents if memory contents are compatible
2017-10-24 22:59:09 +03:00
kd-11
0de0dded53
rsx: Texture fixes continued
...
- Fix buffer invalidate behaviour (wcb)
- Disable auto rebuild with only framebuffer storage getting rebuilt
- Fix vulkan subresource sampling
2017-10-24 22:59:09 +03:00
kd-11
5e58cf6079
rsx: Restructuring [WIP]
...
- Refactor invalidate memory functions into one function
- Add cached object rebuilding functionality to avoid throwing away useful memory on an invalidate
- Added debug monitoring of texture unit VRAM usage
2017-10-24 22:59:09 +03:00
kd-11
8f324dfc0a
vk: Enable primitive restart workaround for polaris and vega on linux as well
...
- Looks like it might be a hardware erratum
2017-10-22 00:14:40 +03:00
kd-11
472cb3b1c2
gl: Check for vendor_string ATI for AMD cards. It seems AMD is still using the ATI openGL stack
2017-10-19 12:22:52 +03:00
kd-11
d8ee6a2edb
add RX 550 to AMD vulkan cards with restart bug
2017-10-19 12:22:52 +03:00
kd-11
ddcacb8258
general fixes; Force u32 return type for index_count and add RX Vega to primitive restart blacklist
2017-10-19 12:22:52 +03:00
kd-11
a8e1754fa4
rsx: Allow clear_surface command for depth-only passes. Removes invalidate cache hack
2017-10-19 12:22:52 +03:00
kd-11
5db45c3699
rsx: More fixes
...
- Workaround for AMD glMultiDrawArrays bug
- Disable disjoint command submission when multidraw support is disabled
2017-10-19 12:22:52 +03:00
kd-11
89dcafbe41
rsx: Reimplement index buffer generation
...
- Emulate primitive restart in software whenever we get the chance
- Ensure PRIMITIVE_RESTART is never active when LIST topologies are active
- Reimplement TRIANGLE_FAN, POLYGON and QUAD expansion
2017-10-19 12:22:52 +03:00
kd-11
3d05e61f7e
rsx/vk: Workaround for polaris primitive restart bug
2017-10-19 12:22:52 +03:00
kd-11
a11d66f52d
update vulkan submodules ( #3600 )
2017-10-15 14:37:52 +03:00
kd-11
86bf61ad35
rsx: Fix memory protection
...
- Fixes hanging when wcb is enabled
2017-10-14 14:19:14 +03:00
kd-11
479aa91368
rsx: Add a debug option to force full software emulation of blit engine
2017-10-14 14:19:14 +03:00
kd-11
eab9d06981
rsx: Texture cache fixes
...
- Fix src/dst framebuffer detection
- Silence some warnings
2017-10-13 15:23:48 +03:00
scribam
0129c54ab6
Move optional.hpp as a submodule
2017-10-12 18:00:24 +03:00
kd-11
c570410e06
rsx: Stop executing broken command queues if the application fails to recover in 3 retries
2017-10-12 13:51:29 +03:00
kd-11
9af71699a4
rsx: Minor fixes
...
- Dont skip cb if a problem occurs, just spin on it instead to allow possibility of recovery
- Vulkan cleanup for the die_with_error helper
2017-10-12 13:51:29 +03:00
kd-11
58860614e3
rsx/qt: Implement native window hooks for win32 windows to allow communication between WndProc thread and rsx::thread
...
- This communication is important in communicating window events. Helps properly synchronize swapchain management on vulkan and stops nvidia crashing
- Do not block the message queue lest the driver detect window as not responding
2017-10-12 13:51:29 +03:00
Nekotekina
19f3bb8cb0
Allow shader cache dialog cancellation
2017-10-11 20:06:33 +03:00
kd-11
f5d450f24c
vk: Better vsync mode selection ( #3571 )
2017-10-11 19:10:49 +03:00
yzwduck
2e5f8c0786
Rename outputs correctly when writing default values to them ( #3574 )
...
- Fix for undeclared variable errors
2017-10-11 01:50:43 +03:00
kd-11
5a03db7d2e
rsx: Improve memory protection behavior when strict mode is off
2017-10-10 12:10:41 +03:00
kd-11
91ef202ee7
vulkan: Better VkResult handling
2017-10-10 12:10:41 +03:00
kd-11
1d375cb13c
vulkan: Fix window resize race condition when doing flip
2017-10-09 20:25:41 +03:00
kd-11
fc0f98b5db
rsx: Res scaling improvements
...
- gl: Reintroduce the wcb hw downscaling
- rsx: Clamp scalable render target size with a config var
2017-10-09 20:25:41 +03:00
kd-11
3fe37ede97
rsx: Fixups
...
- gl: Remove redundant texstorage1D call
- gl: Disable the wcb scaling code as it doesnt work right yet [WIP]
- vk: Fix wcb reads
2017-10-09 20:25:41 +03:00
kd-11
55df3cdf67
vulkan: Implement vsync
2017-10-09 20:25:41 +03:00
kd-11
6e8107a5cb
rsx: Implement AF override
2017-10-09 20:25:41 +03:00
kd-11
7bee4064a6
gl/wcb: Use temporary scaled image to implement bilinear filter
2017-10-09 20:25:41 +03:00
kd-11
12ab03b0b5
rsx/gl: Implement resolution scaling
...
rsx: Revise wpos calculation to take resolution scale into account
2017-10-09 20:25:41 +03:00
kd-11
47202d5839
rsx: Set up patch functionality for program coeffecients
2017-10-09 20:25:41 +03:00
kd-11
e7db0c7d99
vk: Clamp unreleased texture metric
...
- TODO: Find the leaking references
2017-09-23 16:46:41 +03:00
kd-11
393e3b702f
rsx: Clean up debug overlays. Add unreleased textures metric to track texture memory
2017-09-23 16:46:41 +03:00
kd-11
23ad687e7e
vk: New images always should be UNDEFINED or PREINITIALIZED
2017-09-23 16:46:41 +03:00
kd-11
a04ecdbe0a
vulkan: Use frameid to determine texture storage to discard
2017-09-23 16:46:41 +03:00
kd-11
9ee21af524
vulkan: Optimize memory allocation
2017-09-23 16:46:41 +03:00
kd-11
b74cdcde00
rsx: Make the 3rd texture dimension matter
...
- Affects cube maps and texture3D surfaces
2017-09-23 16:46:41 +03:00
kd-11
4d83d749a0
rsx: Texture cache fixes
...
- Update section flags when requested
- Fix nullptr dereference: cached_dest will be null if dst_is_render_target is true
2017-09-23 16:46:41 +03:00
kd-11
d0148728c6
rsx: Fixes
...
- Fix section scanning range for early reject
- Specify IMAGE_ASPECT_STENCIL when uploading image_from_cpu
2017-09-21 20:05:07 +03:00
kd-11
dfc564f837
gl: Check that fence is not empty before calling destroy
2017-09-21 20:05:07 +03:00
kd-11
3499d089e7
rsx: Texture cache fixes and improvements
...
rsx: Conditional lock hack removed
vulkan - Fixes
- Remove unused texture class
- Fix native pitch calculation (WCB)
rsx: Catch hanging begin/end pairs when flushing deferred draw calls
vulkan: Register DXT compressed formats
vulkan: Register depth formats
gl: Workaround for 'texture stitching' when gathering flip surface
- TODO: Add a proper flip hack option
rsx: Fix texture memory size calculation
- DXT textures dont have real pitch. Since pitch is used to calculate memory size, make sure it always evaluates to rsx_size
rsx: Fix cpu copy detection
rsx: Validate blit dst surface and dont make assumptions about region blit order
- Also relax restrictions on memory owned by the blit engine if strict rendering is not enabled
rsx: Fix depth texture detection
rsx: Do not manually offset into dst. The overlapped range check does so automatically
rsx: Minor optimizations
rsx: Minor fixes
- Fix to detect incompatible formats when using GPU texture scaling and show message
- Better 'is_depth_texture' algorithm to eliminate false positives
2017-09-21 16:17:06 +03:00
kd-11
6b96a2022a
rsx: Add support for non-projective shadow sampling
...
- Fixes missing shadows in persona 5
vk: Enable polygon depth bias a.k.a polygonOffset
- Fixes shadow acne in persona 5
2017-09-21 16:17:06 +03:00
kd-11
3836b40bf7
rsx: Fixups
2017-09-21 16:17:06 +03:00
kd-11
571dbfb7b1
rsx: Texture cache improvements
...
- Limits buffer size to min 720 in the Y axis (1024 section causes conflicts in some cases - TODO)
rsx: Fixups to allow large textures for blit operation
- Also includes checks for both leaking sections and blit regions for vulkan
hotfix for hanging when using WCB
addendum - unlock both ro and no blocks before attempting to copy memory blocks
gl: Fixups for ARB_explicit_uniform_location
- Forces glsl v 430 to make use of the extension
rsx/vk: Rework texture cache to minimize recursive access violations
- Also modifies the vulkan commandbuffer begin/end/submit mechanism
gl: Fix cached_texture_section::is_flushable to take memory protection into account
rsx: Fix blit dst offset calculation
2017-09-21 16:17:06 +03:00
kd-11
10e25eb362
rsx: Fix multidraw range splits again
...
rsx: Hotfix for disjoint range detection
2017-09-21 16:17:06 +03:00
kd-11
45d0e821dc
gl: Minor optimizations
...
rsx: Texture cache - improvements to locking
rsx: Minor optimizations to get_current_vertex_program and begin-end batch flushes
rsx: Optimize texture cache storage
- Manages storage in blocks of 16MB
rsx/vk/gl: Fix swizzled texture input
gl: Hotfix for compressed texture formats
2017-09-21 16:17:06 +03:00
kd-11
e37a2a8f7d
rsx: Texture cache fixes and improvments
...
gl/vk/rsx: Refactoring; unify texture cache code
gl: Fixups
- Removes rsx::gl::texture class and leave gl::texture intact
- Simplify texture create and upload mechanisms
- Re-enable texture uploads with the new texture cache mechanism
rsx: texture cache - check if bit region fits into dst texture before attempting to copy
gl/vk: Cleanup
- Set initial texture layout to DST_OPTIMAL since it has no data in it anyway at the start
- Move structs outside of classes to avoid clutter
2017-09-21 16:17:06 +03:00
kd-11
07c83f6e44
gl: cleanup; fix program linkage on mesa using GL_ARB_explicit_uniform_location, also make use of ARB_multidraw
2017-09-21 16:17:06 +03:00
kd-11
061824a7ec
rsx: Add support for batched multidraw
...
gl: Fix multidraw [WIP]
rsx: Ignore vertex base when data source is generated using arithmetic
vk: Check pending flag before doing fence poke
vk/gl: Fix for inlined array and immediate draws
rsx: Collapse joined draws when batching
2017-09-21 16:17:06 +03:00
kd-11
abb56a354d
rsx: Bug fixes and improvements
...
rsx: Try to skip unknown commands without discarding entire cb
2017-09-21 16:17:06 +03:00
kd-11
9359b8c170
rsx/fp: Shader decompiler fixes
...
- Requires proper 2-pass impl
rsx/fp: Catch hanging code blocks
rsx/fp: Don't pause on scaling error
2017-09-21 16:17:06 +03:00
kd-11
2d0f1f27a8
esx: Fixes to the texture cache
...
rsx: Blit engine improvements
- Always handle blits to and from framebuffers through the GPU
- Handle depth surfaces properly when using GL
- Check for format mismatches when blitting to the surface store [WIP]
2017-09-21 16:17:06 +03:00
kd-11
73312fc363
rsx: Several fixes and improvements
...
- Do not ignore non-centered pixel blitting
- Register method ac00+16
- Bump texture memory heap to account for GPU texture scaling requirements (vulkan)
- Explicit MRT location index output to better convey intent (openGL)
2017-09-21 16:17:06 +03:00
kd-11
deb590cb05
rsx/vk: Bug fixes
...
- Make each frame context own its own memory
- Fix GPU blit
- Fix image layout transitions in flip
vk: Improve frame-local memory usage tracking to prevent overwrites
- Also slightly bumps VRAM requirements for stream buffers to help with running out of storage
- Fixes flickering and missing graphics in some cases. Flickering is still there and needs more work
vk: Up vertex attribute heap size and increase the guard size on it
vulkan: Reorganize memory management
vulkan: blit cleanup
vulkan: blit engine improvements
- Override existing image mapping when conflicts detected
- Allow blitting of depth/stencil surfaces
2017-09-21 16:17:06 +03:00
kd-11
2033f3f7dc
rsx/vk/gl: Refactoring and reimplementation of blit engine
...
Fix rsx offscreen-render-to-display-buffer-blit surface reads
- Also, properly scale display output height if reading from compressed tile
gl: Fix broken dst height computation
- The extra padding is only there to force power-of-2 sizes and isnt used
gl: Ignore compression scaling if output is rendered to in a renderpass
rsx/gl/vk: Cleanup for GPU texture scaling. Initial impl [WIP]
- TODO: Refactor more shared code into RSX/common
2017-09-21 16:17:06 +03:00
myfreeweb
07af701afe
Vulkan: use pkg-config instead of checking for Linux ( #3440 )
...
Makes Vulkan optional on Linux / makes it possible on FreeBSD.
2017-09-14 21:02:09 +03:00
kd-11
2e9405db4c
rsx: Remove index expansion for quad strips
2017-08-26 21:53:54 +03:00
kd-11
fe5828cb47
rsx: Implement QUAD_STRIP
...
- QUAD_STRIP evaluates to TRIANGLE_STRIP in memory. The memory layout is identical.
- The only difference between the two modes would be the primitive_ID but that doesnt matter on RSX
- Its worth noting that results will be different between the two modes if input vertices are non-coplanar for every set of N verts
2017-08-26 21:53:54 +03:00
kd-11
e56d8db6a3
gl: Do not modify bound depth/stencil buffers bound to zcull memory
...
- Fixes some rare cases where zcull always fails
2017-08-26 21:53:54 +03:00
kd-11
e76b6e3f27
gl: Workaround for restrictive z range
2017-08-26 21:53:54 +03:00
kd-11
9a7ce2fd29
rsx/vp: ARL fix
2017-08-26 21:53:54 +03:00
kd-11
462b93f62c
vulkan: Gracefully handle back-to-back flip request spam
2017-08-26 21:53:54 +03:00
kd-11
f71f67c4ff
rsx: Make fragment state dynamic to reduce shader permutations
2017-08-26 21:53:54 +03:00
kd-11
8358bda133
gl/rsx: Fixes to zcull pixel counting
2017-08-26 21:53:54 +03:00
Zangetsu38
37bc2b3bb9
rsx: implement pixel size 16.
2017-08-21 17:32:21 +03:00
Jake
5d7c454e52
rsx: Vertex Decompiler, fix sca register assignment
2017-08-19 12:27:53 +03:00
Jake
4d5f98017f
d3d12: ignore 0 sized rt dma copy
2017-08-19 12:27:53 +03:00
Jake
7ecf6cb014
rsx: Ignore sending system reserved semaphores to renderer
2017-08-19 12:27:53 +03:00
Danila Malyutin
9d1aebce74
Silence some obvious warnings
...
Makes travis logs a bit cleaner
2017-08-18 23:09:52 +03:00
kd-11
f21a3069a5
vulkan: Don't keep invalidated objects around too long
...
Games like Tales of Vesperia seem to be using a random memory allocator with very low collision chance.
This means objects are very unlikely to be reused in such games leading to pile-up
2017-08-18 16:51:38 +03:00
kd-11
a8b989b51d
vk: Improve window resize handling
...
- Be careful not to request images not available
- Request a triple buffer at all times if available to keep acquisition from locking up
2017-08-18 16:51:38 +03:00
kd-11
142bfb5250
rsx: Fix immediate indexed drawing
2017-08-18 16:51:38 +03:00
kd-11
334327df67
rsx: Add a success message on program compile completion
...
- Should help users wondering if rpcs3 'froze' during shader compile
2017-08-16 23:58:30 +03:00
kd-11
2400210144
vk: Reimplement access violation sync handling
2017-08-16 23:58:30 +03:00
kd-11
1b1c300aad
vulkan: Restructure frame queues
2017-08-16 23:58:30 +03:00
kd-11
531b03e7af
vk: Catch leaking imageview refs on resize
2017-08-16 23:58:30 +03:00
kd-11
650c1c64f1
gl: Workarounds for intel GPUs which dont seem to be truly GL4 compliant
2017-08-16 23:58:30 +03:00
kd-11
2fd4726919
rsx: Fix single vertex array input declarations
2017-08-16 23:58:30 +03:00
kd-11
b86745ee4e
gl: Fix vsync; always use adaptive vsync instead of double-buffered
2017-08-16 23:58:30 +03:00
kd-11
c04aa05398
rsx: Shader pipeline fixes and improvements
...
- Do not set zfunc if alphakill is not enabled. This is because at the moment alphakill requires a different shader to be built
- use glsl loop-unroll friendly comparison; skip vertex input compare if either key requests it
- Minor tweaks to fp key generation
2017-08-16 23:58:30 +03:00
kd-11
3c9bab8563
ui: Move disable vertex cache to debug. Also add an option to disable zcull emulation in the debugger
2017-08-16 23:58:30 +03:00
kd-11
6eb1786635
rsx: Clamp depth range to [0,1]
...
- Fixes remaining issues with Ni no Kuni
2017-08-16 23:58:30 +03:00
kd-11
bbf2a97d2e
rsx: Zero-initialize the vertex register block
...
- Some games reference constant regs that they never initialize
2017-08-16 23:58:30 +03:00
kd-11
00c6a589a5
rsx/util: Add simple consistent hash function
...
rsx/vk/shaders_cache: Move vp control mask to dynamic state
rsx/vk/gl: adds a shader cache for GL. Also Separates pipeline storage for each backend
rsx: Add more texture state variables to the cache
2017-08-16 23:58:30 +03:00
kd-11
c7dca1dbef
rsx/vk: Implement shaders cache and fix broken pipeline_storage comparison and hash
...
- Fix pipeline state storage to uniquely store each pipeline variant
- Adds a progress bar to indicate loading is taking place
2017-08-16 23:58:30 +03:00
kd-11
1da732bbf5
rsx/gl/vk: Invalidate texture regions when memory is unmapped
...
- Free GPU resources immediately if mappings change to avoid leaking VRAM
2017-08-16 23:58:30 +03:00
kd-11
00b0311c86
rsx/gl/vulkan: Refactoring and partial vulkan rewrite
...
- Updates vulkan to use GPU vertex processing
- Rewrites vulkan to buffer entire frames and present when first available to avoid stalls
- Move more state into dynamic descriptors to reduce progam cache misses; Fix render pass conflicts before texture access
- Discards incomplete cb at destruction to avoid refs to destroyed objects
- Move set_viewport to the uninterruptible block before drawing in case cb is switched before we're ready
- Manage frame contexts separately for easier async frame management
- Avoid wasteful create-destroy cycles when sampling rtts
2017-08-16 23:58:30 +03:00
kd-11
6a707f515e
vk/gl: Factorize shared GLSL code
...
- prep vulkan for shared glsl backend
2017-08-16 23:58:30 +03:00
kd-11
c0409a819e
gl: Workaround for depth/color format mismatch when using hardware blit
2017-08-16 23:58:30 +03:00
kd-11
b2b5f564a1
rsx: Add a few more depth format types to known behaviour paths
2017-08-16 23:58:30 +03:00
kd-11
d54c2dd39a
gl: Move vertex processing to the GPU
...
- Significant gains from greatly reduced CPU work
- Also reorders command submission in end() to improve throughput
- Refactors most of the vertex buffer handling
- All vertex processing is moved GPU side
2017-08-16 23:58:30 +03:00
kd-11
1e46cd255b
gl: Fix inconsistent state tracking
2017-08-10 00:16:20 +03:00
kd-11
e5e6af41a6
gl: Fix occlusion statistics clearing
2017-08-10 00:16:20 +03:00
kd-11
ce437eb8d2
gl: Properly initialize pipeline properties
2017-08-10 00:16:20 +03:00
kd-11
4c019c55d2
rsx/gl: Fix zcull queries and log conditional render modes
...
- Fixes a situation where a query readback is requested while zcull render is still active
2017-08-10 00:16:20 +03:00
kd-11
fcb7072fee
Implement hardware zcull emulation
...
rsx/gl: Support s1 immediate values; ogl minor refactoring
2017-08-06 14:29:42 +03:00
kd-11
7ab1792ef7
rsx: Implement conditional locks
2017-08-06 14:29:42 +03:00
RipleyTom
2d7e91ba8a
Yield instead of sleeping rsx thread. ( #3158 )
...
Another Yield
2017-08-06 01:46:01 +01:00
Jake
fff34a7f0f
d3d12: Fix 0 sized framebuffer crashes
2017-08-02 01:33:12 +03:00
Jake
21dd715b42
sys_rsx: implement support for lle-gcm
2017-08-02 01:33:12 +03:00
Jake
d9a693019b
rsx/gcm: Implement rsx dma. Refactor gcm/rsx to not be as codependent
2017-08-02 01:33:12 +03:00
mp-t
607d2486ea
Code review ( #3114 )
...
* Fix always-true conditions in sceNp module
* gl_render_targets: useless check on unsigned variable, possible bug
* fixed UB in crypto utility functions
* copy-paste error in vk::init_default_resources
* pass strings by const ref
* Dont copy vectors. Make sure copies are not needed because functions are used in a multi-threaded context.
2017-08-01 20:22:33 +03:00
kd-11
f613901eac
gl/vk: Do not trust gcm buffer size to match internal rendering resolution
...
- Should fix games with strange scaling artifacts due to upscaling from lower resolutions
2017-07-27 14:33:30 +03:00
kd-11
4cd5624fa7
rsx/vk/gl: Refactoring - Also adds a vertex cache to openGL as well
2017-07-27 14:33:30 +03:00
kd-11
fb7ccbd7b4
vulkan: Workaround to avoid lockup due to double fault
...
- TODO: Ensure no page faults occur within a page-fault handler!
2017-07-27 14:33:30 +03:00
kd-11
dd19622823
vulkan: Texture cache rewritten - Use a map of vectors instead of a flat array
2017-07-27 14:33:30 +03:00
kd-11
46fa6e47fe
rsx/vk: Vertex cache rewritten, add option to disable it as well
...
- Also enable SPU loop detection by default while were at it
2017-07-27 14:33:30 +03:00
kd-11
3b03f9a010
vulkan: Avoid double flushing if a texture is externally synchronized
2017-07-24 16:52:42 +03:00
kd-11
cb194e06ce
gl: Fix framebuffer validity checks
2017-07-24 16:52:42 +03:00
kd-11
a24780fe5e
vulkan: Avoid cache miss whenever possible if WCB is enabled
2017-07-24 16:52:42 +03:00
kd-11
a7c28f5827
rsx: Fix remainder/iteration computations in BufferUtils
2017-07-24 16:52:42 +03:00
kd-11
425821863b
vulkan; Add a weak vertex cache with single frame validity
2017-07-24 16:52:42 +03:00
kd-11
6557bf1b20
rsx: More aggressive thread scheduling for vertex processing
...
- Significantly helps vertex performance
- Not recommended as more threads will harm performance if the PC does not have the cores for it
2017-07-24 16:52:42 +03:00
Jake
fde6099769
rsx: Fix vertex decompiler to support 2 arg destination
2017-07-22 09:41:00 +03:00
kd-11
df8fa74e2a
vulkan hotfix ( #3046 )
...
* Rework vertex attribute binding for vulkan. Allows always providing a buffer view to the pipeline even if the game has the attribute disabled as long as it is consumed by the vertex shader.
2017-07-22 01:54:28 +03:00
scribam
9747ab61f9
Missing function names (HLE) and small fixes ( #3038 )
...
* Add sceNpScoreGetFriendsRanking and sceNpScoreGetFriendsRankingAsync functions
* Add sceNpSnsFbGetLongAccessToken function
* Add new functions for the sceNpTus module
* Add new functions for the cellSailRec module
* Stub cellCrossControllerInitialize
* Add sceNpAuth* functions for the sceNp2 module
* Remove unnecessary call to c_str()
* Add missing module id "CELL_SYSMODULE_ADEC_AT3MULTI"
* Add Turkish keyboard mapping constant
* Add cellOskDialogExtRegisterKeyboardEventHookCallbackEx function
* Update cellSubDisplay
* Update cotire version to 1.7.10
* Replace cellSubdisplay by cellSubDisplay
* Update cellSysutil.cpp with new functions stubbed
2017-07-21 18:41:11 +03:00
kd-11
2526626646
rsx: Surface cache bug fixes
...
- Properly handle data 'transfer' when recycling frame buffer images
- Clear 'recycled' surfaces before use
2017-07-19 23:28:33 +03:00
kd-11
94c1b74a17
fix build; restore asmjit reader_lock for now
2017-07-19 23:28:33 +03:00
kd-11
05ffb50037
vk/rsx: Bug fixes and improvements
...
- Improvements to framebuffer usage; Avoid creating new resources every frame
- Handle null fragment program properly
- Collect vertex upload statistics
- vk: Pre-initialize 'unused' varying registers in the vertex shader in case it gets matched with a fs that consumes it
-- Fixes a crash about fog_c not being declared
gl/dx12/vk: Handle null fragment program
- cleanup - use yield semantic instead of sleep(0) as yield is more cross-platform
-- sleep(0) is a windows specific scheduler hint
2017-07-19 23:28:33 +03:00
kd-11
f69121116a
rsx/vk: Optimize framebuffer lifetime management
...
- Significant gains due to avoiding aggressive create-delete cycles every frame
2017-07-19 23:28:33 +03:00
scribam
2d037fa130
Remove "#pragma once" directive in a cpp file
2017-07-14 01:46:07 +03:00
raven02
2e47c42367
Add Stretch to Display Area option ( #2961 )
2017-07-08 16:06:11 +03:00
kd-11
9e7a42d057
rsx: Minor bug fixes
...
- vk: Do not select first available format when choosing a swapchain format
- gl/vk: Ignore rendering zero sized framebuffers/scissors
- fp: Re-enable range clamp on fp16 registers; fix fx12 clamping [-2, 2]
2017-07-08 14:52:16 +03:00
kd-11
d43e06c0ea
rsx: Fix some fp bugs
...
rsx/fp: Properly fix RCP
- Input is always scalar, output is a vector
rsx/fp: Ignore forced unit for SIP and TEX instructions
2017-07-08 14:52:16 +03:00
kd-11
c788331e45
vk: Fix layout transitions
2017-07-08 14:52:16 +03:00
kd-11
3d935b64f2
rsx/gl/vk: Enable contents transfer when a new framebuffer is created and not cleared
2017-07-08 14:52:16 +03:00
kd-11
e9b8f94fb1
rsx/gl/vk: Enable frame skipping
2017-07-08 14:52:16 +03:00
kd-11
b95ffaf4dd
rsx: Implement skip draw. Also, start working on MT vertex upload
2017-07-08 14:52:16 +03:00
Zangetsu38
253e7a90b8
vk: add "add_signed" in blend op.
2017-06-30 18:40:40 +03:00
kd-11
a69f19a9ab
rsx/decompilers: Avoid std::endl like the plague. It adds extra processing overhead
2017-06-29 13:13:19 +03:00
kd-11
d7662e54cc
rsx/fp: Do not swizzle shadow lookups
2017-06-29 13:13:19 +03:00
kd-11
459a7ba5a2
rsx: Avoid using push_back/emplace_back on empty STL containers
...
- Reckless management of STL containers causes significant slowdown
- Also reorders vertex compare steps to fail quickly on simpler checks
2017-06-29 13:13:19 +03:00
kd-11
9cb58a47cd
gl: Avoid creating surface copies when strict mode is disabled.
2017-06-29 13:13:19 +03:00
kd-11
3651e67a25
vk: Fix mapping of output colors to render target ranges
2017-06-29 13:13:19 +03:00
kd-11
8a0f6f1cbc
gl: Fix legacy ring buffer address alignment
...
- Should always return a base address aligned to the buffers alignment.
- Fixes renderdoc crashes when capturing
2017-06-29 13:13:19 +03:00
kd-11
1887e2460f
rsx: Use loose memory protection on textures since they're almost guaranteed to be wholly moved when changing. Speedup.
2017-06-29 13:13:19 +03:00
kd-11
6e578c4fde
rsx: Initialize declared but unset varying variables to all ones
2017-06-29 13:13:19 +03:00
kd-11
47e5074dc5
rsx: Emulated index buffers are based on vertex 0 with no disjoint ranges
...
- Drop the 'first' argument as it is unused for now
2017-06-29 13:13:19 +03:00
kd-11
74d8619240
dx12: Fix error reporting
2017-06-29 13:13:19 +03:00
Nekotekina
d86858da64
Fix tabs
2017-06-24 14:25:11 +03:00
kd-11
72edf26fb8
rsx/gui: Add a strict mode toggle. Also reorganizes the graphics tab a bit
...
code cleanup
2017-06-22 23:36:15 +03:00
kd-11
28f3e9a65b
vk: Move resource init/destroy to constructor and destructor
2017-06-22 23:36:15 +03:00
kd-11
17318112eb
rsx: Do not sample as pcf shader if writing a vector result
2017-06-22 23:36:15 +03:00
kd-11
590bb7cbe4
rsx: Bug fixes
...
rsx: Give more info when ring buffer allocations fail
2017-06-22 23:36:15 +03:00
kd-11
798f90dac2
rsx/ui: Make a few settings configurable via the GUI
2017-06-22 23:36:15 +03:00
kd-11
b2e906f4cc
rsx: Code cleanup. Fixes several dozen warnings
...
- Wrap unused parameters as comments to prevent C1400
- Fix sized variable conversions with explicit casts
2017-06-22 23:36:15 +03:00
kd-11
11317acdbe
rsx: Handle non-zero base vertex better
...
- Vertex buffer contents treat the base vertex as vertex 0 so we do the same for indices
rsx: Fix vertex base indexing
rsx: Properly fix non-zero offset indexed rendering
2017-06-22 23:36:15 +03:00
kd-11
5c6cf77c57
rsx: Register NV4097_SET_COLOR_KEY_COLOR method.
2017-06-22 23:36:15 +03:00
kd-11
13825c9ef7
vk: Proper shutdown to avoid destroying resources still in use
2017-06-22 23:36:15 +03:00
kd-11
6013b0782e
vk: Avoid constantly reinitializing the SH context when compiling SPIRV. Speedup
2017-06-22 23:36:15 +03:00
kd-11
5f180e0b30
vk: Prefer optimal formats when clearing buffers
2017-06-22 23:36:15 +03:00
kd-11
84ae1c5214
gl: Silence log spam
2017-06-22 23:36:15 +03:00
kd-11
86adc42739
rsx/gl/vk: Invert default stencil values
...
- Fixes stencil volume shadows in a few games. This is part of the surface invalidation workarounds
2017-06-22 23:36:15 +03:00
kd-11
30f276a49b
gl: Properly emulate signed normalized wide integers
...
Another fix for signed normalized formats; single component vectors are swizzled
2017-06-22 23:36:15 +03:00
kd-11
98cf72e0fb
rsx: Fix clip space computations
2017-06-22 23:36:15 +03:00
kd-11
75964c686f
rsx/gl/vk: Fix some warnings and whitespace issues (LF vs CRLF)
2017-06-22 23:36:15 +03:00
kd-11
0cb6dee474
vk/gl: Do not sample currently bound render targets
...
- Create temporary copies for use with the draw call instead
2017-06-22 23:36:15 +03:00
kd-11
db1a90d828
rsx: Discard surface store contents once per frame (temp workaround)
...
Need to find the proper command issued to discard all surfaces
2017-06-22 23:36:15 +03:00
kd-11
110974af0b
vk/gl: Fix sampling of shadow2D textures
2017-06-22 23:36:15 +03:00
kd-11
69d3d47901
gl: Fix clip-space -> depth conversion. Fixes remaining depth read issues
...
- Also set some default values for samplers in a cleaner way using their 'natural' float values
2017-06-22 23:36:15 +03:00
kd-11
b50d5107b3
rsx/vk/gl: Minor fixes
2017-06-22 23:36:15 +03:00
kd-11
6a9eef0382
rsx/gl/vk: Enable use of native PCF shadows
2017-06-22 23:36:15 +03:00
kd-11
5f66d0b996
rsx/wip: Fix depth surface reuse and clearing (fixes shadows)
2017-06-22 23:36:15 +03:00
kd-11
701728ecd7
rsx: Fix depth-as-rgba read in fp
2017-06-22 23:36:15 +03:00
kd-11
423fd4a388
rsx: Fix stencil initial values
2017-06-22 23:36:15 +03:00
Jake
23d1ddbb8e
Dx12/Vulk: Fix KernelBase.dll crash ( #2870 )
2017-06-13 11:36:42 +03:00
kd-11
9aa632bcc1
rsx/vk: Fixes for ring buffer allocation and image clipping ( #2850 )
2017-06-10 23:32:17 +03:00
kd-11
12da498001
vk: API bug fixes - Improve spec conformity
...
explicitly request anisotropic filtering and BC compression
clean up a leaking framebuffer handle reference when using debug overlay
Wait for device instead of queue to ensure no conflict during renderer shutdown
Clip scissor regions when doing surface clears
2017-06-08 19:08:44 +03:00
kd-11
2556484c67
fixes to project files and build scripts
...
cleanup
2017-06-08 19:08:44 +03:00
kd-11
860b76452f
vulkan bringup on linux
...
cleanup: drop unused stuff
2017-06-08 19:08:44 +03:00
kd-11
d5df4a4616
rsx/fp/gl: Minor fixes ( #2823 )
...
* rsx/fp: expand glsl unpack instructions to vec4
* rsx/fp: Ignore BRK outside LOOP/REP
* fix string compare typo
2017-06-01 15:53:25 +03:00
kd-11
e6d55a6692
ui/vk: Reimplement vulkan GS selection; minor fixes for broken contexts on unsupported devices
2017-05-26 18:26:10 +03:00
xperia64
05b9575981
Add option to select Vulkan device ( #2814 )
2017-05-25 18:46:28 +03:00
kd-11
18df292f90
rsx/fp: Better handling of flow control ops
2017-05-22 14:28:33 +03:00
kd-11
ccb23d70a5
vk: Improve flush queue sync between cell threads
2017-05-22 14:28:33 +03:00
kd-11
786bcb0d1b
rsx: bugfix - avoid a divide by zero
2017-05-22 14:28:33 +03:00
kd-11
0efc3c1c6c
rsx: Relax restriction on vertex register data fetch
2017-05-22 14:28:33 +03:00
kd-11
d4ddc40988
rsx: Add support for repeated data streams (broken attrib divisor?)
2017-05-22 14:28:33 +03:00
kd-11
e8b4d332eb
rsx: Use faster upload path when conditions allow
...
Fix aligned memory access (SSE)
rsx: BufferUtils; always use optimized paths
2017-05-22 14:28:33 +03:00
Nekotekina
f010b5b235
Configuration simplified
2017-05-20 16:01:48 +03:00
Zangetsu38
43b06c2a9c
Fix compilation asmjit for VS. ( #2791 )
2017-05-18 19:31:39 +03:00
scribam
299f627321
Stub cell ( #2785 )
...
* Update cellGcmSys
* Update cellStorage
* Update cellSubdisplay
* Update sceNpTrophy
- Use error_code as return type
- Add few checks
* Update cellKey2char
* Update cellKb:
- Use error_code as return type
- Replace UNIMPLEMENTED_FUNC by .todo
* Update cellNetCtl
* Update cellSpudll
* Update cellSysutilAp
* Update cellUserInfo
* Stub sys_mempool_allocate_block (bad idea)
2017-05-15 14:30:14 +03:00
kd-11
c26607de08
gl: Strict export of diff_color and spec_color for mesa compatibility ( #2779 )
...
* gl: Strict export of diff_color and spec_color for mesa compatibility
* gl: Relax the front_diff/spec rules a little
2017-05-14 11:50:24 +03:00
shameful
e93c4c42b6
fix for shader fog mode exponential2_abs ( #2781 )
...
* Update VKFragmentProgram.cpp
added missing exponent parameter
* fixed misplaced exponent in VKFragmentProgram.cpp
parameter that belonged to pow() was being passed to exp() instead, causing the shader compilation to fail
* fix for opengl fog_mode exponential2
same fix as the vulkan version
* directx fog_mode exponential2 fix
misplaced parameter
* directx fog_mode exponential2_abs fix
* vulkan fog_mode exponential2_abs fix
* opengl fog_mode exponential2 fix
2017-05-14 12:56:24 +08:00
kd-11
d24ba0da90
gl: Workaround to detect opengl driver caps for intel
2017-05-12 20:10:03 +03:00
kd-11
7460bdfb1b
gl: Use strict vertex output declaration for better compatibility with mesa
2017-05-12 20:10:03 +03:00
kd-11
c5975d5f66
rsx: Vertex program output fixes
2017-05-12 20:10:03 +03:00
kd-11
450d45354c
rsx: Enable GPU texture scaling by default
2017-05-10 21:50:14 +03:00
kd-11
4b5a30f53d
vulkan: Do not bother with cache checks if buffer sync is not managed
...
introduce pause intrin
2017-05-10 21:50:14 +03:00
kd-11
0ec88bb65d
vulkan: Mark of critical code from allowing cb split in exception handler
...
vk: Shader loads are sacred
2017-05-10 21:50:14 +03:00
kd-11
3b27b3c182
vk: Buffer sync timing tweaks
...
vulkan: more sync timing fixes
2017-05-10 21:50:14 +03:00
kd-11
e1a75deb25
rsx: Refactor image scaling code; Scale downloaded surfaces with vulkan
2017-05-10 21:50:14 +03:00
kd-11
c7db322873
vulkan: Use non-blocking list of lists (WIP)
...
whitespace fix only
facepalm
2017-05-10 21:50:14 +03:00
kd-11
b78c6f7127
clear up a spec misunderstanding
2017-05-10 21:50:14 +03:00
kd-11
2b19031206
vulkan: Use a parallel cb for texture cache ops; bug fixes
...
vk: More surface fixes and debug stuff
vk: Crude thread sync implementation to prevent cb desync crashes due to resource usage
fix build
more fixes
vulkan: Do not flush command queue if address cannot be flushed
vk: More fixes for accuracy. Needs optimizations
vk: Batch all flush-to-buffer operations in the non-critical path
- More work is needed to make queue submission asynchronous
2017-05-10 21:50:14 +03:00
kd-11
fd754a4ddc
vulkan: Start work on buffer synchronization
...
addendum - fix build
vulkan: separate cached section lifetime management
bug fixes
2017-05-10 21:50:14 +03:00
Jake
ac58953276
Fix typo/spacing from userclip
2017-04-29 01:26:03 +03:00
Jake
60ce85f840
[Render] Userclip for d12/vk/ogl ( #2719 )
2017-04-25 18:32:39 +08:00
raven02
24fc1027ea
vk: add source alpha saturate blend factor ( #2724 )
2017-04-22 22:35:36 +08:00
scribam
30eb680c9d
Check variable before to execute remove, in GLGSRender::on_exit ( #2682 )
2017-04-18 00:30:34 +03:00
Ofek
a5fd7abcf7
Trophy update ( #2655 )
...
* Added checksum check to TROPHY.TRP loader
* Implemented sceNpTrophyGetGameProgress, sceNpTrophyGetGameIcon & sceNpTrophyGetTrophyIcon
* Updates to up to date APIs and tiny changes
* Code style fixes for checksum verifier, and another fix for trophy functions
* Format fix
2017-04-13 20:29:47 +03:00
kd-11
3ce7947dd3
rsx: Throw if user attempts to use Vulkan/DX12 without driver support
2017-04-11 13:19:31 +03:00
kd-11
ac3b22902a
gl: Autodetect supported OpenGL extensions
...
cleanup
2017-04-10 17:24:30 +03:00
raven02
9b48074389
GL: fix wireframe in Catherine ( #2660 )
2017-04-10 09:28:46 +08:00
kd-11
adefd1fd63
rsx/ui: Add config toggle for GPU texture scaling/blit
2017-04-08 23:12:09 +03:00
kd-11
6d6d0e4e36
gl: Use the GPU to scale textures; use ARB_sampler_object
...
Improve scaling and separate sampler state from texture state
gl: Unify all texture cache objects under one structure separate by use case
gl: Texture cache fixes
- Acquire lock when finding matching textures
- Account for swizzled surfaces when deciding whether to cpu memcpy
- Handle swizzled images on the GPU
2017-04-08 23:12:09 +03:00
kd-11
d94986ff0d
rsx: Set up hw accelerated blit
2017-04-08 23:12:09 +03:00
kd-11
2d99f3556e
rsx: Fix line_loop -> line_strip indexing
2017-04-03 13:50:58 +03:00
kd-11
d33bc540bc
rsx/vk: Re-enable layout transitions in vulkan. Vulkan drivers take this hint seriously
...
- Fix enum typo
2017-04-03 13:50:58 +03:00
Jochen Schleu
ce7d62968e
Only pass positive values to sqrt and log2 in the fragment program. ( #2624 )
2017-04-03 13:17:20 +03:00
kd-11
0fba38f691
gl: Fix legacy clamp mode ( #2612 )
2017-03-30 19:37:49 +03:00
kd-11
66835cf083
rsx: Fix mipmap count calculation
2017-03-29 23:06:17 +03:00
kd-11
ad12900397
gl: Force alignment of DXT textures
2017-03-29 23:06:17 +03:00
kd-11
909f3e9b3e
rsx: Support indexed immediate draw via ArrayElement method
2017-03-29 23:06:17 +03:00
kd-11
3ec1fe9ee7
rsx: Fix depth clears on z16 surfaces without stencil
...
remove some debug code
2017-03-26 16:22:53 +03:00
kd-11
70d3a6d840
rsx: Support more base types for immediate rendering
...
fix alignment
2017-03-26 16:22:53 +03:00
kd-11
ba968048c9
vk: Minor fixes to vertex counting and lower exception to notice if var does not exist
2017-03-26 16:22:53 +03:00
kd-11
79d114cc06
rsx: Support immediate mode rendering
2017-03-26 16:22:53 +03:00
kd-11
5b0fddd3e8
gl/vk: Fix stencil ops
2017-03-25 15:07:43 +03:00
kd-11
34c2b8a55e
rsx: recover from FIFO parse errors
...
- Validate FIFO registers before access
-- Validate the args ptr separate from the get ptr
2017-03-24 09:30:23 +03:00
kd-11
ef822d785e
rsx/fp: src3 workaround
2017-03-24 09:30:23 +03:00
kd-11
f7d767d0e8
gl/vk: Fix projected coordinate lookup on a cubemap sampler
2017-03-24 09:30:23 +03:00
kd-11
8fa3f0721e
fix false alphakill flags when texture fetch is optimized away
2017-03-24 09:30:23 +03:00
kd-11
1de2ceca9b
rsx/vp: Fixes ( #2533 )
...
* rsx/vp: Fix rsq opcode broken in previous commit
* fix ms compiler error
* fix another possible conflict with ms d3d compiler
2017-03-14 16:05:59 +03:00
kd-11
8fc281e034
gl: Separate scale offset, fragment constants and transform constants uploads
2017-03-13 23:40:34 +03:00
kd-11
2093134420
gl: Do not attempt to re-flush an address if another thread flushes it first
2017-03-13 23:40:34 +03:00
kd-11
818dd88390
gl/vk: Ignore invalid texture uploads
2017-03-13 23:40:34 +03:00
kd-11
be4bb48476
rsx/fp: Fix some decompiler bugs
2017-03-13 23:40:34 +03:00
Nekotekina
1ede0f4706
Minor optimization
2017-03-13 15:02:18 +03:00
Nekotekina
78703cfe47
Use utils::memory_protect
2017-03-13 13:16:22 +03:00
kd-11
fa6114719d
gl: Lower restriction on render target pitch
2017-03-13 12:44:28 +03:00
kd-11
1fd33f611c
gl: Fix texture cache bugs
...
Fix endianness bug
Fix r/w when real pitch is <= 64
2017-03-10 19:11:53 +03:00
raven02
a168aa2df3
DX12: fix DRGB8 texture format ( #2480 )
...
* DX12: set native sampler format to BGRA8
* DX12: fix DRGB8 texture format
2017-03-07 19:34:09 +08:00
kd-11
0fd888a42e
vk: Fix DRGB8 format
2017-03-06 18:56:46 +03:00
kd-11
1e71285de8
gl/vk/dx12: Implement forced channel remapping
...
gcc fix
2017-03-06 14:34:29 +03:00
Nekotekina
19a698682b
Compilation fix (mingw)
2017-03-05 19:00:08 +03:00
kd-11
b8fcbb68b0
gl/vk/cache: Fix invalidating intersecting and overlapping memory regions
...
whitespace fix
2017-03-01 14:00:06 +03:00
kd-11
85c0219aed
vk: Fix cache range computation
2017-03-01 00:40:53 +03:00
kd-11
10e218e224
Fix linux build (travis-ci)
2017-03-01 00:40:52 +03:00
kd-11
69d044cd8d
gl: Relax requirement to EXT_DSA from ARB_DSA to better support linux
2017-03-01 00:40:51 +03:00
kd-11
7062efeb3e
gl: Fix a fence deadlock in fence::wait_for_signal
...
gl: Fix potential race condition when executing local work queue
2017-03-01 00:38:22 +03:00
kd-11
cee53fcecf
gl: Ensure correct sized pbo is created upon reset
2017-03-01 00:16:55 +03:00
kd-11
ef8e92cbe3
gl: Change clear timing to immediate
...
gl: Handle cell write to locked RTT region
addendum: Fix buffer locking (personal 4)
2017-03-01 00:16:55 +03:00
kd-11
7c73c3b75c
rsx/gl: Minor refactoring; prepare vulkan backend
2017-03-01 00:16:55 +03:00
kd-11
1e826f5ccf
rsx: Minor optimization (tangible boost)
2017-03-01 00:16:55 +03:00
kd-11
96561c16ad
gl: Rewrite texture cache
...
gl: scale downloaded RTT images
2017-03-01 00:16:55 +03:00
Jake
c3b424eb11
rsx: image_in fix for clipx/y ( #2440 )
2017-02-28 16:21:07 +08:00
kd-11
9263999ad1
[rsx/vp] Improve BRB opcode implementation
...
fix merge issues
2017-02-26 10:17:34 +03:00
Nekotekina
baf22527b0
Ditch fs::get_executable_dir
2017-02-22 17:17:26 +03:00
Jake
a886e28f87
Fix nv3089_image_in
...
- Restrict clip_x/y
- Remove double offset addition
2017-02-17 18:33:56 -06:00
Ani
65104b5909
Rough implementation of GCM_CONTEXT_DMA methods
...
Rough implementation of GCM_CONTEXT_DMA methods.
Fixes #1487
2017-02-17 22:35:28 +03:00
Ani
5605b4ee70
Fixes #2399
...
Defaults dGPU on NVIDIA Optimus systems and requests High Performance
mode on AMD systems.
2017-02-17 02:07:42 +03:00
Zangetsu38
682924b51a
D3D12: add DXGI_FORMAT_B8G8R8A8_UNORM missing ( #2385 )
2017-02-15 00:29:43 +08:00
Nekotekina
598c90f376
PPU thread scheduler
2017-02-13 22:26:11 +03:00
Nekotekina
763550c472
0x2c8..0x2fc
2017-02-13 17:50:04 +03:00
kd-11
d6159a35aa
gl/vk/dx12: Fix texture scaling on unnormalized rtt access
2017-02-11 15:45:59 +03:00
Zangetsu38
73906f9f29
d3d12: add x1r5g5b5_z1r5g5b5 and cleanup in D3D12Formats.
...
Add info in BufferUtils for log.
2017-02-10 22:04:45 +03:00
Oil
1669d0fdbd
Minor changes ( #2352 )
...
* More initial values for rsx method registers
* Implemented spu decrementer event
* Remove u32 cast
2017-02-07 23:59:59 +03:00
raven02
f84b2f072f
D3D12: add missing logic set
2017-02-06 12:34:20 +03:00
Nekotekina
246b9f3182
CHECK_EMU_STATUS removal
2017-02-05 17:35:27 +03:00
O1L
a809f33418
GL: try to skip incorrectly prepared FBO's.
2017-02-04 19:32:54 +03:00
O1L
bf33a1827c
Set default values for NV4097_SET_SURFACE_FORMAT register
2017-02-04 19:32:54 +03:00
O1L
57ef6dae91
Implemented cellGcmSetDefaultCommandBufferAndSegmentWordSize
2017-02-04 19:32:54 +03:00
Zangetsu38
bd6a7dea7e
rsx: Fix error context dma
2017-01-31 14:37:31 +01:00
Ani
35b7cf4c98
Misc changes ( #2309 )
...
AppVeyor: Improve artifact name
Travis: Update notification email
README: Fix forum link and remove coveralls
sceNp2: Use UNIMPLEMENTED_FUNC macro instead of fmt::throw_exception
VK: Fix pathing for linux
AboutDialog: Fix forum link
2017-01-31 01:16:47 +03:00
Nekotekina
a5a2d43d7c
Thread.cpp refinement
...
Hide thread mutex
Safe notify() method
Other refactoring
2017-01-29 19:52:19 +03:00
Ryan Gonzalez
11e2965b5c
Switch to always using a steady clock ( closes #2200 )
2017-01-29 03:07:08 +03:00
Nekotekina
d4c3905355
Debug build fix
2017-01-28 15:32:45 +03:00
Ryan Gonzalez
b644d5b2ae
Add logic_set support to VKGSRender
2017-01-28 03:20:30 +03:00
O1L
8318eed068
Seems like sfunc and zfunc comparison constants used by NV4097_SET_DEPTH_FUNC and NV4097_SET_STENCIL_FUNC
2017-01-23 23:49:17 +03:00
O1L
778199ceb1
Added missing stencil op
2017-01-23 23:49:17 +03:00
O1L
6b48a72d42
GL: fixed user clip implementation
2017-01-23 23:49:17 +03:00
O1L
07a366b608
VP decompiler: fixed condition update flags using
2017-01-23 23:49:17 +03:00
Cornee Traas
435ef04c34
Bind SET_POLYGON_STIPPLE_PATTERN ( #2259 )
...
Causes MGS4 to boot a little bit further
2017-01-20 10:48:17 +08:00
kd-11
fb5df32990
rsx/vs: decode sca ops after vec ops
2016-12-15 14:36:28 +03:00
kd-11
a1e725ffeb
gl: Decode dxt textures to a staging buffer
2016-12-15 14:36:28 +03:00
kd-11
973bf5abdf
gl: Disable overlay if required extension is not supported ( #2212 )
2016-10-20 11:20:45 +08:00
kd-11
2c803dbe66
gl/vk: Bug fixes and improvements ( #2206 )
...
* gl: Only bind attrib textures on thread startup
* gl: Persistent mapped buffers
* gl: Fix emulated primitives in an inlined array
* gl: Do not re-update program information every draw call
* gl/vk: s1 type is signed normalized not unsigned normalized
* gl/rsx: Allow disabling of persistent buffers for debugging
gl: Large heap size is more practical
gl: Fix a bug with legacy opengl buffers
* gl/rsx: Allow emulation of unsupported attribute formats
* gl: Fix typos and remove dprints
gl: cleanup debug prints
* ui: Move the GL legacy buffer toggle to the left pane
* vk/gl: Fix cmp type, its range is [-1,1] not [0,1] SNORM_INT
2016-10-18 15:57:28 +08:00
kd-11
8454949eea
gl/vk/rsx: Add a cross-platform overlay text; Minor perf improvements and rsx bugfixes ( #2196 )
...
* gl/rsx: Implement platform-agnostic text overlays
gl: Restore performance metrics using new text out helper
gl/rsx: Refactor text generation class
* vk: Enable text overlay
gl/vk: Polish overlay counters implementation
gl: Better resource shutdown for text writer
* gl: Optimization, do not rebind TIUs every frame. Speedup
* gl: Optimizations and improvements to vertex upload code
* gl/vk: Texture format swizzles
vk: Texture format fix
vk: Fix YX format swizzles
* rsx: Decode vertex texture index
2016-10-11 08:55:42 +08:00
kd-11
7a9841bb2a
gl/vk/dx12: Fix depth reconstruction bug; Fix sampler parameters ( #2188 )
...
vulkan: Fix duplicated code bug
fix rebase
2016-10-04 21:51:40 +08:00
Melissa Goad
22b1400018
Revamp PFIFO command submission emulation ( #2179 )
2016-10-01 22:13:15 +03:00
raven02
44b8556dc6
Vulkan: fix G8B8 texture swizzle ( #2181 )
2016-10-01 17:02:10 +08:00
kd-11
1c9718389f
gl/vk: Vertex attribute uploading and texture swizzle fixes ( #2174 )
...
* gl/vk: Properly upload vertex attributes
* vk: Fix cmp type
* vk: Remap all texture formats
2016-09-29 15:16:00 +08:00
kd-11
5430e1d310
rsx/gl/vk/dx12: Add emulated texture fetch for depth read ( #2173 )
...
* rsx/gl/vk/dx12: Add emulated texture fetch for depth read
gl/vk/dx12: Simplify reinterpretation equation
* gl: Remove unnecessary re-swizzle
* glsl: explicitly cast uint to float
2016-09-29 14:54:32 +08:00
kd-11
9abb908226
vk: Add a subpass dependancy ( #2172 )
2016-09-28 22:12:52 +08:00
kd-11
38562155d4
gl/vk: Flip wpos if origin != top
2016-09-28 07:22:45 +08:00
kd-11
4f74cbe510
gl: Reverse cull face when origin == top ( #2161 )
2016-09-27 15:34:01 +08:00
raven02
528b2d6c7b
GL/Vulkan: not discard fragment when hits NEVER comparsion ( #2156 )
...
GL/Vulkan: return no operation when comparison is never
2016-09-26 21:59:38 +08:00
kd-11
7884356e90
gl/vk: Bug fixes and improvements ( #2155 )
...
* gl: Fix broken buffer reserve computation
* gl: Texture format fixes
* gl: Two sided lighting
* gl: Always update glsl output registers
* gl: Simplify vertex input declaration
* vk: Always write output registers
* vk/gl: swizzle component read on depth textures
* gl/vk: Use proper MVP matrix
gl: fix broken mvp when window_origin=top
* vk/gl: Move fragment operations block into the proxy function
2016-09-26 20:21:17 +08:00
raven02
38f35df7b6
DX12: enable alpha kill ( #2158 )
2016-09-26 18:38:52 +08:00
raven02
fcb853792d
Typo fix ( #2153 )
2016-09-25 16:53:57 +08:00
Oil
b72f6da853
Porting of DH's user clip implementation in gl ( #2139 )
...
* Porting of DH's user clip implementation in gl
* Tweak clang-format
* rsx: Move inline array to draw_clause structure.
* rsx: Use variant based draw commands.
* rsx: Dump DRAW_ARRAYS and DRAW_INDEX_ARRAYS.
* GL: old recompiler clean up (#2142 )
* RSX texture refactor (#2144 )
* gl/vk: Enable vertex texture fetch (#2127 )
* gl: Enable vertex textures
* rsx: use textureLod instead of generic texture sample
* rsx: handle uploading of W32_X32_Y32_Z32
* gl: Re-enable proper shader logging
remove old logging method that overwrites single file
* gl: Declare texture_coord_scale for vertex samplers
* gl: texture remap fixes; enable remap for vertex textures
* gl: offset texture indices to base layer 16
* rsx: Fix W32_Z32_Y32_X32_FLOAT subresource layout
* vk: Enable vertex textures
* rsx: define special calls for vertex texture fetch
* gl: improved vertex texture fetch setup
* vk: Fix texture formats and component mapping
* vk: Implement vertex texture fetch functions properly
* vk/gl: proper fix for primitive restart index
revert inadvertent decompiler update
* gl: Disable filtering for vertex textures
* Hopefully fix appveyor build (#2148 )
* GL/Vulkan: Bug fixes and improvements; alphakill for vulkan (#2146 )
* vk: Zero-initialize some more structs
* gl: Clean up fragment program generation code
* vk: Enable alpha kill
* vk: Fix surface clear; redirect output for surface_type:b
* vk: Tie renderpass to program object to avoid incompatible passes
* vk: Properly compute descriptor pool size (#2150 )
* rsx: Set default attribute format to float.
* rsx: vertex attribute size is 1 again for CMP, let backend handles this formats properties.
* rsx: Move printing function in a separate header/cpp
* Porting of DH's user clip implementation in gl
2016-09-24 18:21:41 +08:00
vlj
9ff52cf063
rsx: Move printing function in a separate header/cpp
2016-09-22 15:44:59 +02:00
vlj
8f5e94c155
rsx: Set default attribute format to float.
2016-09-22 15:44:59 +02:00
vlj
6b7ce37374
rsx: vertex attribute size is 1 again for CMP, let backend handles this formats properties.
2016-09-22 15:44:59 +02:00
kd-11
66e57ae19b
vk: Properly compute descriptor pool size ( #2150 )
2016-09-22 16:06:57 +08:00
kd-11
0d207a6c0d
GL/Vulkan: Bug fixes and improvements; alphakill for vulkan ( #2146 )
...
* vk: Zero-initialize some more structs
* gl: Clean up fragment program generation code
* vk: Enable alpha kill
* vk: Fix surface clear; redirect output for surface_type:b
* vk: Tie renderpass to program object to avoid incompatible passes
2016-09-21 21:41:29 +08:00
kd-11
867e9210d7
gl/vk: Enable vertex texture fetch ( #2127 )
...
* gl: Enable vertex textures
* rsx: use textureLod instead of generic texture sample
* rsx: handle uploading of W32_X32_Y32_Z32
* gl: Re-enable proper shader logging
remove old logging method that overwrites single file
* gl: Declare texture_coord_scale for vertex samplers
* gl: texture remap fixes; enable remap for vertex textures
* gl: offset texture indices to base layer 16
* rsx: Fix W32_Z32_Y32_X32_FLOAT subresource layout
* vk: Enable vertex textures
* rsx: define special calls for vertex texture fetch
* gl: improved vertex texture fetch setup
* vk: Fix texture formats and component mapping
* vk: Implement vertex texture fetch functions properly
* vk/gl: proper fix for primitive restart index
revert inadvertent decompiler update
* gl: Disable filtering for vertex textures
2016-09-20 22:23:56 +08:00
raven02
77f8ce503d
RSX texture refactor ( #2144 )
2016-09-19 09:25:49 +08:00
raven02
530ea688e4
GL: old recompiler clean up ( #2142 )
2016-09-18 13:19:26 +08:00
vlj
f87e396958
rsx: Dump DRAW_ARRAYS and DRAW_INDEX_ARRAYS.
2016-09-17 23:37:52 +02:00
vlj
8d54bcbc0d
rsx: Use variant based draw commands.
2016-09-17 23:37:52 +02:00
vlj
03c86ae43b
rsx: Move inline array to draw_clause structure.
2016-09-17 23:37:52 +02:00
Oil
153a2d2b40
Fixed fog and alphakill implementation in glsl (based on DH's old commits) ( #2137 )
...
* Fixed NV4097_SET_COLOR_CLEAR_VALUE
* Fixed fog and alphakill implementation in glsl (based on DH's old commits)
2016-09-14 22:47:53 +08:00
Oil
e73fce2d60
Fixed NV4097_SET_COLOR_CLEAR_VALUE ( #2135 )
2016-09-13 02:28:34 +03:00
vlj
14205d3d1c
d3d12: CMP vertex format has 4 members.
...
Fix 1878
2016-09-12 00:20:11 +02:00
vlj
30b804e0bc
d3d12: Fix a potential race condition.
2016-09-12 00:20:10 +02:00
vlj
153f1cc50a
d3d12: Always set transform constant when debug output is enabled.
2016-09-12 00:20:10 +02:00
raven02
fc3179b698
DX12: temporary disable vertex base index check ( #2128 )
2016-09-07 09:26:01 +08:00
raven02
d4a55f4b06
Vulkan: enable cull face again ( #2124 )
...
* Vulkan: enable cull face again
* minor fix
2016-09-06 09:43:27 +08:00
raven02
03a5b5be1a
DX12: Align to multiple of 4 block for DXTC format ( #2125 )
2016-09-05 08:47:45 +08:00
raven02
ad39615141
Revert "RSX: fix unknown vertex base type" ( #2122 )
2016-09-04 18:29:21 +08:00
raven02
691d87978b
RSX: fix wrong format 0x9b ( #2121 )
2016-09-04 15:23:43 +08:00
raven02
ebf54d6acd
RSX: fix unknown vertex base type ( #2120 )
2016-09-04 14:36:37 +08:00
vlj
11858dce1a
rsx: Vertex array attributes don't need to be stored outside of regs.
2016-08-27 15:40:41 +02:00
vlj
a64053fd68
rsx: Remove some unused code.
2016-08-27 15:40:41 +02:00
raven02
bb66b97251
GL: minor fixes ( #2105 )
...
* Minor fixes
* temporary disable 2-sided lighting
* Disable user clip planes until they are properly handled
2016-08-27 14:12:44 +08:00
raven02
6e07e07cd0
GL: enable 2-sided lighting ( #2103 )
2016-08-27 00:26:23 +08:00
raven02
a270ac7f02
GL: re-use common fp/vp decompiler ( #2100 )
2016-08-26 22:23:23 +08:00
Vincent Lejeune
42b518cf7e
rsx: use range for vertex buffer attribute.
2016-08-24 21:58:59 +02:00
raven02
5b225ad59f
GL: ignore texture upload if invalid dimension found ( #2097 )
2016-08-24 21:19:16 +08:00
kd-11
8ebe9d7dc2
gl: Dont use hard assertions on error, driver reporting is so much better ( #2094 )
2016-08-24 17:31:27 +08:00
kd-11
9beb2d8ae0
vk/rsx: Bug fixes ( #2092 )
...
* vk: fix separate front and back lighting
* vk: Inlined arrays can have emulated primitives too!
* vk: Use float input attribs for better compatibility
* vk: Free resources during shutdown
2016-08-24 08:50:07 +08:00
raven02
12099b3144
RSX: fix invalid format (0x1) ( #2088 )
2016-08-24 02:08:05 +08:00
raven02
2aa2c1811f
Vulkan : add structure type for color blend state ( #2091 )
2016-08-23 19:07:51 +08:00
raven02
af1ff4439d
RSX: fix wrong format 0x9c ( #2087 )
2016-08-23 16:18:58 +08:00
raven02
51bdf1e3ed
DX12: fix invalid dimension ( #2086 )
...
DX12: workaround invalid texture dimension
2016-08-23 11:06:01 +08:00
raven02
d7a899f984
Vulkan : refine 2-sided lighting approach ( #2083 )
2016-08-23 08:24:22 +08:00
raven02
707523c679
Vulkan: set ColorBlendState info (used by logicOp) ( #2080 )
...
* Vulkan: set ColorBlendState info (used by logicOp)
* fix attachmentCount
2016-08-22 23:14:32 +08:00
raven02
e04de77f82
Vulkan : Ignore clear if surface target is set to CELL_GCM_SURFACE_TARGET_NONE ( #2081 )
2016-08-21 18:18:26 +08:00
Nekotekina
84d0d396ed
EXPECTS usage removed
2016-08-15 16:29:38 +03:00
Nekotekina
56b9b38c9c
verify() fix
2016-08-15 14:59:19 +03:00
Nekotekina
05fb57baff
VERIFY macro removed
2016-08-15 03:13:31 +03:00
Nekotekina
cc46f2d7e6
LOG macro improved
2016-08-15 00:04:42 +03:00
Nekotekina
1f3433464c
ENSURES usage removed
2016-08-14 22:41:01 +03:00
Nekotekina
0f87c4485d
Silly macro removed-2
2016-08-14 18:19:42 +03:00
Vincent Lejeune
619d605a9e
rsx: remove vertex_draw_count
2016-08-11 19:47:14 +02:00
Vincent Lejeune
b8721b6475
gl: Refactor vertex_buffer.cpp
2016-08-11 19:47:14 +02:00
Vincent Lejeune
a94b9d38b0
vk: refactor VKVertexBuffers.
2016-08-11 19:47:14 +02:00
kd-11
44ae306e6b
vk: delay texture removal when cache is clobbered ( #2045 )
2016-08-09 08:47:42 +08:00
Nekotekina
a7e808b35b
EXCEPTION macro removed
...
fmt::throw_exception<> implemented
::narrow improved
Minor fixes
2016-08-08 19:19:32 +03:00
Vincent Lejeune
fb47945930
rsx: Returns u32 instead of size_t for get_index_count/type_size
2016-08-06 00:25:23 +02:00
Vincent Lejeune
eb1d4811de
rsx: Use a "draw clause" object in rsx_state.
2016-08-05 23:33:40 +02:00
Vincent Lejeune
7a6f5b6ee5
rsx: Move index pointer generation in rsx::thread.
2016-08-05 17:54:44 +02:00
raven02
8ff155a2c9
Regression fix #2029 ( #2030 )
2016-08-05 14:38:58 +08:00
Nekotekina
5a36c57c57
Formatting system improved
...
`unveil<>` renamed to `fmt_unveil<>`, now packs args to u64 imitating va_args
`bijective...` removed, `cfg::enum_entry` now uses formatting system
`fmt_class_string<>` added, providing type-specific "%s" handler function
Added `fmt::append`, removed `fmt::narrow` (too obscure)
Utilities/cfmt.h: C-style format template function (WIP)
Minor formatting fixes and cleanup
2016-08-04 21:34:00 +03:00
raven02
4dd67cdd54
texture: ignore when texture width > pitch
2016-08-04 17:54:34 +08:00
kd-11
47a9c8d731
vk/gl: bug fixes ( #2018 )
...
* vk: use null sampler for invalid/broken texture configurations
* gl: Do not consider 32_BIT_EXPORTS flag for depth writes
2016-08-04 03:33:52 +08:00
raven02
208f4c3e27
vk: front_diff_color typo fix ( #2016 )
...
* vk: typo fix
* continue in for loop
2016-08-02 23:54:49 +08:00
Vincent Lejeune
9e7902455d
rsx: Fix warning because of unused arguments
2016-07-31 19:19:21 +02:00
Nekotekina
68cf570b58
Implemented rsx::invalid_method
2016-07-31 18:16:51 +03:00
Nekotekina
1c69eb2b73
rsx_method_t extended
...
rsx_methods.cpp cleanup
2016-07-31 18:16:49 +03:00
Nekotekina
6a9f3040e1
rsx_methods.cpp fix
2016-07-31 18:16:48 +03:00
Vincent Lejeune
22a89a272e
Move all gcm enums into separate header/cpp.
2016-07-31 17:04:30 +02:00
Vincent Lejeune
4c46bde315
rsx: Inline rsx_state and texture constructors.
2016-07-31 16:48:09 +02:00
Vincent Lejeune
15500d4ee9
rsx: implement serialization of rsx states.
2016-07-30 18:39:26 +02:00
Nekotekina
f8719c1230
PPUThread refactoring
...
`CallbackManager` removed, added _gcm_intr_thread for cellGcmSys
`PPUThread` renamed to `ppu_thread`, inheritance allowed
Added lightweight command queue for `ppu_thread`
Implemented call stack dump for PPU
`get_current_thread_mutex` removed
`thread_ctrl::spawn`: minor initialization fix
`thread_ctrl::wait_for` added
`named_thread`: some methods added
`cpu_thread::run` added
Some bugs fixes, including SPU channels
2016-07-30 16:35:02 +03:00
kd-11
33c59fa51b
vk: optionally center/offset images when scaling ( #1998 )
2016-07-30 10:07:39 +08:00
Vincent Lejeune
ac771f951d
rsx: Copy state in capture frame call
2016-07-27 20:20:35 +02:00
Vincent Lejeune
8b12379eb3
rsx: Use bitfield template to decode values.
2016-07-27 18:38:36 +02:00
Lena
e377199e41
Ensure the 'shaderlog' directory exists ( #1986 )
...
Should fix #1984
2016-07-26 00:15:14 +03:00
Nekotekina
7ccdea7822
Removed std::enable_shared_from_this
...
Minor ID manager refactoring
2016-07-24 21:06:05 +03:00
kd-11
09ae45c566
vk: Conform to current spec ( #1981 )
...
* vk: define rtt images with transfer_dst set
* vk: Bind a buffer view for attribs with undefined data
* vk: Properly define renderpass clip region to fit the framebuffer
* vk: respect type bits from returned memory requirements
2016-07-25 00:28:49 +08:00
Nekotekina
deeb4acbe5
Partial revert of 6ae54ae27b
2016-07-22 19:26:58 +03:00
kd-11
74fec275c7
gl: Clear depth surfaces before use; Vulkan cleanup ( #1957 )
...
* vk: Clean up a few trap messages
vk: silence a few compile errors
* gl: Clear new depth surfaces to max_depth
gl: use glClear to clear depth buffers
2016-07-22 07:31:58 +08:00
raven02
0ae8cc4467
D3D12: revert heap size back to 896M ( #1960 )
...
* D3D12: revert heap size back to 896M
* Update D3D12GSRender.h
2016-07-21 14:50:06 +08:00
raven02
f36f478281
vk: refactor compare_op ( #1959 )
2016-07-21 13:35:06 +08:00
raven02
8157e7cac8
Obsolete 3D monitor ( #1955 )
2016-07-20 23:45:26 +08:00
Nekotekina
ae634bb87e
RSX exception fix
...
VBlank thread management fix
2016-07-20 15:16:19 +03:00
Vincent Lejeune
e9bee80f4b
rsx: Use register_decoder for vertex attributes.
2016-07-19 20:28:32 +02:00
kd-11
854bc1db60
dx12: simplify constant color blend equation/algorithm checks
2016-07-19 19:20:57 +03:00
kd-11
d3837de571
dx12: Constant color/alpha blending
2016-07-19 19:20:57 +03:00
raven02
e1ff3f4674
rsx: use fragment_textures_count ( #1948 )
...
* rsx: use fragment_textures_count
* Typo: unknow -> unknown
2016-07-19 22:50:40 +08:00
Nekotekina
ceb4cb59ac
Typo fix: comparaison->comparison
2016-07-19 14:17:25 +03:00
raven02
6296453ef3
D3D12: inline stencil test as GL and Vulkan backend ( #1945 )
2016-07-19 16:52:14 +08:00
raven02
7ac9d3b679
D3D12/Vulkan : swizzle texture format G8B8 ( #1931 )
...
* D3D12: swizzle texture format G8B8
* Vulkan: swizzle texture format G8B8
2016-07-18 20:16:11 +08:00
kd-11
2e5b01faca
vk: Fix vertex winding ( #1934 )
...
* vk: do not flip face winding based on shader origin
* vk: disable face culling
2016-07-17 22:55:59 +03:00
kd-11
2337bf204c
vk/dx12: Enable/fix separate back and front lighting ( #1927 )
...
* vk: separate specular color
rsx: separate front color output from back color output
re-enable front-back diffuse lighting
vk: fix front face selection and actually enable face culling
* dx12: Hide constant-key blended visuals (by common use of factor, 1-factor)
* dx12: Fix 2 sided lighting when the shader does not compute both outputs
* vk/dx12: confirm that src register exists before copying for 2-sided lighting
2016-07-18 00:57:50 +08:00
Vincent Lejeune
c6ed5a8e6b
gl: Fix direct call to rsx::method_registers array.
2016-07-17 17:31:53 +02:00
Vincent Lejeune
d97cdb9fbf
rsx: Gather most rsx commands pretty printing and state modification function in a single file.
...
rsx_decode.h implements a "rsx_decoders" template class that is specialized for most GCM command
found in rsx command buffer. 3 static members are defined : a "decode" function that turns command
value into a more meaninfull type if applicable (for instance bool for _enabled* command, surface
formats for set_surface_format command...), a "commit_rsx_state" that modifies a given rsx_state
structure when the command is parsed, and a "dump" function used in rsx_debugger for pretty printing.
Hopefully having the 3 functions in a single place for every command will act as a self documenting
list of rsx command buffer opcode.
rsx_state is also expanded into several explicit variables instead of being stored into a u32 array.
This should makes debugging easier (Visual Studio will display the exact value of these member for instance)
as well as preparing rsx_state for serialisation/deserialisation.
The vertex array and textures opcode are not concerned atm for bisecting purpose.
2016-07-17 17:31:53 +02:00
Nekotekina
692d9dd4ae
NV0039_OFFSET_IN fix
2016-07-17 15:03:13 +03:00
raven02
2085d318bb
rsx: typo fix ( #1921 )
2016-07-15 20:19:15 +03:00
kd-11
ce56351554
gl: Fix fragment constants streaming ( #1907 )
2016-07-15 02:25:38 +08:00
kd-11
6401eefb26
gl: reset texture scaling factor during bind
...
reset vertex textures as well
2016-07-13 21:01:16 +03:00
kd-11
ea6f3ff5ed
gl: Properly determine front face winding
2016-07-13 21:01:16 +03:00
kd-11
97581d8635
gl: Fix primitive type checks
2016-07-13 21:01:16 +03:00
raven02
87e38118a5
Ignore clear if surface target is set to CELL_GCM_SURFACE_TARGET_NONE ( #1898 )
2016-07-12 21:52:11 +08:00
kd-11
2c981cf940
rsx: mark register access with divider op enabled and frequency 1 ( #1892 )
2016-07-12 02:53:52 +08:00
raven02
b89961f01d
rsx: set frame limiter before rsx->flip() ( #1885 )
2016-07-11 21:00:04 +08:00
kd-11
59df7e7104
glsl: not all shaders write to col0 ( #1884 )
...
fix typo
2016-07-11 09:05:13 +08:00
kd-11
bbf7e6332c
glsl; dump shaderlog ( #1883 )
...
fix typo
2016-07-11 01:16:31 +08:00
raven02
47987efb75
rsx: add default case for to_front_face() ( #1879 )
2016-07-10 08:33:20 +08:00
raven02
ed8ebda804
vk: add missing compare func not_equal ( #1876 )
2016-07-10 04:32:09 +08:00
kd-11
6705a6ecc9
rsx: properly check for inlined array before discarding draw ( #1877 )
2016-07-09 22:54:44 +08:00
raven02
dfa968863a
DX12: get_scissor() fix ( #1868 )
2016-07-09 01:00:15 +08:00
raven02
70885ada67
RSX: throw exception removal for user_command() ( #1872 )
2016-07-09 00:22:10 +08:00
raven02
1f4ebf1501
RSX: check vertex_draw_count
2016-07-08 16:56:12 +08:00
Vincent Lejeune
772706ca4c
Factorize rsx state
2016-07-07 21:38:57 +02:00
raven02
effd379c25
Vulkan/DX12 : refactor cull face code ( #1849 )
...
* Vulkan/DX12 : refactor cull face code
1
* Add optimal build options to CMakeLists (#1841 )
Provides two options when building RPCS3
USE_SYSTEM_FFMPEG BOOL (default: OFF)
USE_SYSTEM_LIBPNG BOOL (default: OFF)
These options lets the user select between the system provided and builtin libraries of ffmpeg and libpng to overcome possible system issues.
Also adds support for older libpng releases if the user doesn't have libpng 1.5 or higher.
* DX12: depth buffer compare should perform only if depth testing is enabled (#1848 )
* GL: front face regression fix (#1854 )
* GUI: Add bulk decryption of LLE modules (#1845 )
Adds a new menu to "Tools" called "&Decrypt SPRX libraries" which opens a dialog to select
multiple *.sprx files, which are than decrypted all at once.
This speeds up the LLE module decryption and saves users a lot of time.
The output path is the same where the input module resides and the extension is changed
to *.prx
* vk: Avoid double-copy for vertex attributes (#1852 )
* vk: Avoid double-copy for vertex attributes
fix buffer overflow
vk: Fix vertex attrib offset_in_dst for batched draw calls
* whitespace fix only
2016-07-03 10:35:51 +08:00
kd-11
a6b7c9c309
vk: Avoid double-copy for vertex attributes ( #1852 )
...
* vk: Avoid double-copy for vertex attributes
fix buffer overflow
vk: Fix vertex attrib offset_in_dst for batched draw calls
* whitespace fix only
2016-07-02 22:27:53 +08:00
raven02
c3bac7c92b
GL: front face regression fix ( #1854 )
2016-07-01 20:47:56 +08:00
raven02
45d41267f5
DX12: depth buffer compare should perform only if depth testing is enabled ( #1848 )
2016-07-01 15:02:40 +08:00
raven02
246b593783
Vulkan/GL: add default case for front face in case of garbage value ( #1844 )
2016-06-30 12:46:25 +08:00
raven02
d22017bfca
DX12: using better approximation for constant color/alpha blending ( #1839 )
...
* DX12: using better approximation for constant color/alpha blending
* typo fix
* Comment updated.
2016-06-28 20:19:04 +08:00
DH
989f954432
Added WIP vertex textures support
2016-06-28 12:58:44 +03:00
DH
4d88296485
RSX shaders cache: group programs by indexes
2016-06-28 12:54:08 +03:00
DH
086e1c34dd
RSX: added hack to the nv3089::image_in
...
Remove it when textures cache will be implemented properly
2016-06-28 12:52:10 +03:00
DH
e6c6a7fb8b
RSX: added proper nv0039::buffer_notify implementation from rsx_cache branch
2016-06-28 12:48:45 +03:00
DH
32830d45ff
Improved shaders cache
2016-06-27 21:53:56 +03:00
raven02
2c10348408
DX12 : add remaining constant color/alpha blending ( #1834 )
2016-06-27 20:40:53 +08:00
DH
44879dd9f3
Implemented alpha kill and fog
2016-06-27 01:52:08 +03:00
DH
6ae54ae27b
RSX: Added legacy non-array vertex attributes support (if count of elements > 1)
...
Fixed ps1ght games
2016-06-26 21:32:50 +03:00
DH
bf8a20c4b9
Avoid using flip hack if it's possible
...
Also added some documentation about it
2016-06-26 21:32:49 +03:00
DH
e296f81a37
Shaders decompiler: support non 2D textures
...
Do not validate programs with undefined textures uniforms
Minor fix
2016-06-26 21:32:48 +03:00
raven02
d69a4173fa
vk: push back border color to sampler ( #1832 )
...
* vk: push back border color to sampler
* use approximate color
* Add TODO for VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
2016-06-26 21:25:25 +08:00
raven02
7779742ac1
GL: fix few texture swizzle remap ( #1823 )
...
* GL: fix few texture swizzle remap
* GL: add texture format HILO8 & HILO_S8
* VK: add mapping for X32_FLOAT
2016-06-25 20:15:10 +08:00
DH
714e07b1dc
OpenGL rendered: use textures cache
2016-06-23 01:01:29 +03:00
DH
f30d71da6c
OpenGL renderer: improved vertex attributes setup
...
Minor fixes
2016-06-22 22:46:47 +03:00
DHrpcs3
cbf880fb71
OpenGL renderer: Proper clipping implementation
2016-06-21 19:56:07 +03:00
DHrpcs3
8fd3064905
OpenGL renderer: check for gl errors in release builds.
...
Ignore null-sized textures
Cleanup
2016-06-21 19:56:06 +03:00
DHrpcs3
e83c387ebe
OpenGL renderer: Fixed texture bias setup.
2016-06-21 19:56:05 +03:00
DHrpcs3
3b5cd4845e
OpenGL renderer: use correct MVP matrix. Cleanup
...
Simplified gl::ring_buffer helper
2016-06-21 19:56:05 +03:00
DHrpcs3
c0487a634e
Added rsx_program_decompiler to the CMakeLists
2016-06-21 19:56:04 +03:00
O1L
67fe5e1107
Fill fragment constants
2016-06-21 19:56:02 +03:00
O1L
1778113b71
Use sampler buffers in vertex shaders
2016-06-21 19:56:01 +03:00
O1L
8637754d6a
Missed changes
2016-06-21 19:56:00 +03:00
O1L
083c4fc855
Try to use new shaders decompiler in OpenGL backend
2016-06-21 19:56:00 +03:00
raven02
298c9fea22
vk: Better VRAM heap selection by memory properties (AMD)
2016-06-19 13:49:25 +08:00
raven02
244f3dfb89
DX12: set the heap size based on available vram ( #1786 )
2016-06-19 11:01:11 +08:00
raven02
28366d35d2
VK: add cull mode and front face ( #1789 )
2016-06-19 09:53:49 +08:00
raven02
f6b5f02501
Merge branch 'master' into gl-flip
2016-06-19 00:28:02 +08:00
kd-11
833c100850
vk: Properly enable window resizing
2016-06-18 15:39:07 +03:00
raven02
079411eee8
Texture format W16_Z16_Y16_X16_FLOAT fix ( #1777 )
2016-06-17 09:32:07 +03:00
raven02
9f1ee5bd28
OGL: disable pixel processing test before flip
2016-06-15 21:51:51 +08:00
kd-11
3a63b62486
gl: dynamically determine texture buffer offset alignment
...
fix alignment issues for gpus where align < 16 is ok
2016-06-14 00:08:23 +03:00
kd-11
28a5d4d4f0
Add a workaround for a khronos spec bug
2016-06-14 00:08:23 +03:00
kd-11
6761d4a30c
gl: use streaming buffers for uniform & elem buffer as well
...
gl: stream uniform data using stream buffer
gl: vertex streaming improvements and bugfixes
gl: add basic timing info check for profiling
gl: ebo streaming fixes and enhancements
2016-06-14 00:08:23 +03:00
kd-11
ed94626411
gl: use unsynchronized buffer streaming for attribs
...
fix linux build
2016-06-14 00:08:23 +03:00
kd-11
40a598b0ab
gl/vk: Quickly ignore access violations outside cache range
2016-06-14 00:08:23 +03:00
raven02
ea528a1ced
Write shader log in seperate directory ( #1755 )
...
Write shader log in separate directory
2016-06-13 19:53:50 +03:00
raven02
caf5894152
Vulkan: add two sided stencil/logic op/depth bounds test support ( #1767 )
...
* Vulkan: add two sided stencil support
* Vulkan: add logic op support
* Vulkan: add depth bound test support
* Drop off wrong case
* Minor fixes
2016-06-13 14:10:59 +03:00
kd-11
3956b21cb7
vk/gl/dx12: Dynamic cb flush for vulkan; fix glsl/hlsl vertex shader generation for some games; dx12: ignore fbo textures during flip if no surface target is set ( #1766 )
...
* gl/vk/dx12: Fix vertex shader code generation for buggy games
dx12: revert vsh attribute changes
* vk: dynamically flush command buffers if we exceed available resources
* dx12: do not prepare flip texture if it has not been initialized
2016-06-11 16:24:27 +03:00
kd-11
35ab3b0cd8
gl/vk/dx12: re-implement pack/unpack operations ( #1764 )
...
dx12: implement pack/unpack operations
dx12: Fix shader compilation when pack/unpack is used
dx12: pk16/up16 - relax half-float range to more realistic values
2016-06-10 14:42:48 +03:00
raven02
db27ea923d
VP: add few opcodes comment for vec/sca ( #1750 )
2016-06-10 01:03:43 +03:00
kd-11
4260f68f85
gl/vk: Fix ub256 and s32k vertex attributes; silence some unnecessary debug errors ( #1757 )
...
* gl/vk: Sample integer attribs with integer samplers
* gl: silence useless DPRINTs where behaviour has already proven correct
2016-06-08 12:39:08 +03:00
kd-11
c4102f3b18
vk/gl: Enable alpha test in shaders ( #1743 )
2016-06-05 20:31:23 +03:00
raven02
9710044134
Remap color component depends on RTT or RSX memory ( #1744 )
2016-06-05 11:11:58 +03:00
raven02
39767b8d46
Texture bias minor fix ( #1745 )
2016-06-04 19:12:14 +03:00
raven02
e5a792515e
GL: set texture bias ( #1742 )
2016-06-04 14:41:53 +03:00
raven02
8f67c910ab
FP: Implement REFL and LRP ( #1712 )
2016-06-04 10:23:45 +03:00
kd-11
6b3c47a42a
vk: change default border color to black; fix GEQUAL compare op
2016-06-03 17:07:48 +03:00
kd-11
60a7f9b3f2
vk: Fix rtt formats and component sampling
...
vk: Fix for rtt image sampling
2016-06-03 17:07:48 +03:00
kd-11
d22672b156
vk: Disable user clip planes
...
Use // for comments as requested
2016-06-03 17:07:48 +03:00
kd-11
dc970c513a
gl: Respect more requested surface format configurations
2016-06-03 17:07:48 +03:00
kd-11
2bcc755fca
Ignore clear if surface target is set to CELL_GCM_SURFACE_TARGET_NONE
2016-06-03 17:07:48 +03:00
raven02
ee645d054d
GL/Vulkan: Implement DP2A ( #1708 )
2016-06-02 13:07:43 +03:00
raven02
df6ee9c29d
DX12: fix for surface color format ( #1709 )
...
#1652
#1594
2016-05-30 00:53:28 +03:00
raven02
fc1408e643
FP: Implement texture lookup with explicit gradients ( #1706 )
2016-05-29 18:33:41 +03:00
raven02
214d3d0f1a
GL/Vulkan: write shader program log as .glsl and .spirv ( #1720 )
...
* GL: write shader program log as .glsl
* VK: write shader program log as .spirv
2016-05-26 21:47:37 +03:00
Nekotekina
266db1336d
The rest
2016-05-23 16:22:25 +03:00
raven02
42423588c8
Use native function for OP_CODE_PK2/UK2 and UP2/UK2
2016-05-21 22:08:34 +08:00
John
ce3fdeda5e
Replace math macros by function calls from cmath. ( #1695 )
2016-05-19 19:15:56 +03:00
Ivan
aafcf44581
Header optimizations ( #1684 )
...
Shouldn't break anything. I hope.
2016-04-27 01:27:24 +03:00
Ivan
da7472fe81
Optimizations ( #1680 )
...
* Optimizations
1) Some headers simplified for better compilation time
2) Some templates simplified for smaller executable size
3) Eliminate std::future to fix compilation for mingw64
4) PKG installation can be cancelled now
5) cellGame fixes
6) XAudio2 fix for mingw64
7) PPUInterpreter bug fixed (Clang)
* any_pod<> implemented
Aliases: any16, any32, any64
rsx::make_command fixed
2016-04-25 13:49:12 +03:00
Ivan
75fe95eeb1
GSL moved from stdafx.h ( #1676 )
...
Added GSL.h helper for correct including
2016-04-20 02:32:27 +03:00
Nekotekina
b85a68e8a1
Partial commit: RSX
2016-04-15 19:22:36 +03:00
Raul Tambre
7c1ab47262
Fix OpenGL crash ( #1668 )
2016-04-08 22:18:46 +03:00
Vincent Lejeune
3a3d264cb5
rsx/common/d3d12/gl/vulkan: Set dst stride in write_vertex_array_data_to_buffer.
2016-04-07 22:17:28 +02:00
Vincent Lejeune
2ae5a7ff39
rsx/common/d3d12/gl/vulkan: Use single overload for write_index_array_data_to_buffer.
2016-04-07 22:17:28 +02:00
Vincent Lejeune
2e17ea1490
rsx/common/d3d12/vulkan: Factorise data_heap between vulkan and d3d12.
2016-04-07 22:17:28 +02:00
Vincent Lejeune
cbe119b457
rsx/common: Remove MIN2/MAX2 macro.
2016-04-07 22:17:28 +02:00
Raul Tambre
5ad060f150
Vulkan/DX12: Texture format fixes
...
DX12 also had a couple fixes
2016-04-07 21:34:32 +03:00
Raul Tambre
a8e15ce18a
Fix forced_unit for unimplemented instructions
...
For SCT and SCB, the forced unit is always set to FORCE_NONE before
handling of the instruction. This makes the error for unimplemented
instructions' forced unit be incorrect. This fixes that.
2016-04-07 21:34:32 +03:00
Raul Tambre
3ee56627eb
DX12 texture format fixes and improvements
2016-04-07 21:34:32 +03:00
kd-11
dab1dda903
Specify buffers to read when blitting output to backbuffer
2016-04-06 11:16:49 +03:00
kd-11
1a61ef0440
Remove deprecated features from core profile
2016-04-06 11:16:49 +03:00
kd-11
e9766f1b76
Properly handle ssa input type (non-varying)
...
Properly handle ssa input as local (non-varying)
2016-04-06 01:22:01 +03:00
Vincent Lejeune
99717b7902
gl: Fix vertex buffer size.
2016-04-02 18:27:49 +02:00
Vincent Lejeune
bad2d7f121
gl: Move vertex setting in a separate file.
2016-04-02 18:27:49 +02:00
Vincent Lejeune
d59486295d
gl: Supports 1D and 3D textures.
2016-04-01 00:52:51 +02:00
Vincent Lejeune
69d08b6691
vulkan: Support cube and 1D/3D textures.
2016-03-31 23:50:14 +02:00
Vincent Lejeune
c95c4c32e6
vulkan: Always map at least 1 byte.
2016-03-31 23:50:14 +02:00
Vincent Lejeune
5a3cf5d9ac
rsx/common: Remove extra "-2" in get_exact_mipmap_count non compressed format.
2016-03-31 20:40:19 +02:00
Vincent Lejeune
ce072f25e2
d3d12: Move sampler DescriptorHeap selection in D3D12GSRender
...
Avoid sampler descriptor being stored on 2 heaps inside a single draw
call. Fix somes crashes.
2016-03-31 17:56:30 +02:00
Vincent Lejeune
4c0b5bbc62
gl: Correctly upload cubemap texture.
2016-03-31 00:15:19 +02:00
Vincent Lejeune
51a6862bf4
gl: Use right texture target.
2016-03-31 00:15:17 +02:00
Vincent Lejeune
b6c827b17a
gl: Fix r5g6b5 format.
2016-03-31 00:12:41 +02:00
Vincent Lejeune
17c4b2387e
gl: Fix unnormalized coord sampling.
2016-03-31 00:12:41 +02:00
Vincent Lejeune
91d0229bc5
rsx/common: Use an help texture_dimension_extended to handle cubemap more cleanly.
2016-03-30 22:19:29 +02:00
Vincent Lejeune
b7c539ad7a
rsx/common: Make get_exact_mipmap_count take compressed format into account
2016-03-30 22:19:29 +02:00
Vincent Lejeune
77674be1c1
vulkan: Fix all warnings in VKGSRender project.
2016-03-30 21:16:53 +02:00
Vincent Lejeune
70903d46e6
vulkan: Reset command buffer after framebuffer flushing.
...
Fix a (false positive ?) layer error report about comand being called
before vkBeginCommandBuffer has been called.
2016-03-30 21:16:53 +02:00
Vincent Lejeune
f86c079acf
vulkan: Do not acquireNextImage twice when no rtt is present.
2016-03-30 21:16:53 +02:00
Vincent Lejeune
38d57eb02c
vulkan: Remove unneeded dirty_frame boolean.
2016-03-30 21:16:53 +02:00
Vincent Lejeune
d5e44f6224
vulkan: Fix stencil aspect mask sometimes missing.
2016-03-30 21:16:53 +02:00
Zangetsu38
3fbc3a3f00
vulkan: Add instruction for Persona 4 : Arena
2016-03-30 21:16:53 +02:00
Vincent Lejeune
73233fd347
rsx/common: Use typed class for texture filters.
2016-03-30 20:03:50 +02:00
Vincent Lejeune
d971c4e0f6
rsx/common: Use typed enum for max anisotropy.
2016-03-30 20:03:50 +02:00
Vincent Lejeune
7f25720bd3
rsx/common: Use a typed enum for texture wrap mode.
2016-03-30 20:03:50 +02:00
Vincent Lejeune
f2c82d3cf4
rsx/common: Use a typed class for texture dimension.
2016-03-30 20:03:50 +02:00
Vincent Lejeune
08b47616b6
d3d12: Fix updated texture state
2016-03-30 18:01:54 +02:00
Vincent Lejeune
aa3c97f918
vulkan: Only submit command buffer at flip and avoid extra sync.
2016-03-28 19:54:50 +02:00
Vincent Lejeune
7a988c73a6
Vulkan: Alloc a descriptor set at every draw call.
2016-03-28 19:54:50 +02:00
Vincent Lejeune
855d6935d9
gl: Enable core context and debug output.
2016-03-27 03:45:30 +02:00
Vincent Lejeune
21e7206f7a
vulkan: Do not purge texture before flip
2016-03-26 17:46:43 +01:00
Vincent Lejeune
1b33abf287
vulkan: Clear framebuffer after flip.
2016-03-26 17:45:00 +01:00
Vincent Lejeune
9485fe2693
rsx/common/gl/d3d12/vulkan: Use exact mimap counts.
...
Fix invalid textures in gl backend.
2016-03-25 21:37:53 +01:00
kd-11
0327e76320
Fix quad strip triangle winding
2016-03-24 10:52:35 +03:00
kd-11
a120414d32
Set render target textures to clamp to border by default
2016-03-24 10:52:35 +03:00
Vincent Lejeune
36aace57ca
vulkan: Use simpler texture object
2016-03-23 21:09:30 +01:00
Vincent Lejeune
23a0116975
gl: Expand index for quads/quad_strip/triangle_fan
2016-03-22 21:39:00 +01:00
Vincent Lejeune
b00acff9dd
rsx/common: Turn alignment constraints in textureUtils to multiple_of constraints.
2016-03-22 19:06:09 +01:00
Vincent Lejeune
284d2c43f9
rsx/common: Use protected instead of private for surface_store content.
2016-03-22 19:06:09 +01:00
Vincent Lejeune
4f2bda26fc
vulkan: Simplify framebuffer class and release them at frame flip
2016-03-21 22:56:07 +01:00
Vincent Lejeune
a14dd8ea51
vulkan: Move sampler object outside of texture.
2016-03-21 22:10:36 +01:00
Vincent Lejeune
6f9f5f7918
vulkan: Create program in program_state_cache<>::build_pipeline
2016-03-21 22:10:34 +01:00
Vincent Lejeune
34eb85683c
vulkan: Remove buffer_deprecated completly.
...
attrib_buffer now use the simpler buffer struct.
2016-03-21 00:03:28 +01:00
AnnieL
afefecf1f0
Moves GL, minidx12, OpenAL, stblib to 3rdparty
...
Moves GL, minidx12, OpenAL, stblib to 3rdparty
Fixes AppVeyor and CMakeLists (travis-ci.yml doesn't need any changes)
Points directories in the VS solution files to the new ones on the
externals directory
Includes stuff with the < > syntax instead of " "
2016-03-20 22:20:23 +00:00
Vincent Lejeune
6078f25aa7
vulkan: Split get_compatible_sampler_format in two
...
Component mapping is not a sampler parameter.
2016-03-19 18:23:26 +01:00
Vincent Lejeune
4484e8c3f0
vulkan: Move vk_wrap_mode and max_aniso to vkFormat
2016-03-19 18:12:43 +01:00
Vincent Lejeune
b6bcdade81
vulkan: Do not copy texture inside a render pass
2016-03-19 18:07:27 +01:00
Vincent Lejeune
e083c1471c
vulkan: Fix crash at exit
2016-03-19 00:17:00 +01:00
Vincent Lejeune
d9eba43360
vulkan: Do not create empty render pass.
...
Fix a crash with radeon crimson drivers.
2016-03-19 00:16:59 +01:00
Vincent Lejeune
24eb544046
vulkan: Move descriptor sets and layout in VKGSRender class
...
They're now shared between all programs.
2016-03-18 00:08:28 +01:00
Vincent Lejeune
6a1f0aed36
vulkan: Precompute all possibles render pass
2016-03-18 00:08:28 +01:00
Vincent Lejeune
6229733fbb
vulkan: Use a shared pipeline layout
2016-03-17 20:03:09 +01:00
Vincent Lejeune
7e971eb032
vulkan: Fix for get_memory_mapping
2016-03-17 20:03:09 +01:00
kd-11
26738762ea
vk: Indexing into mipmap lod is scalor not vector
2016-03-17 19:43:41 +03:00
Vincent Lejeune
61de5e8835
vulkan: Clear swapchain before usage.
...
Fix VkQueuePresentKHR error messages
2016-03-15 22:03:24 +01:00
Vincent Lejeune
3b3fffa962
vulkan: Remove redundant texture::create/init overloads
2016-03-15 22:03:24 +01:00
Vincent Lejeune
63ad2cce72
vulkan: Use ring allocation for uniform/index buffers by using simpler memory_block and buffer class.
2016-03-15 22:03:24 +01:00
Vincent Lejeune
da2caa0881
vulkan: precompute memory type mapping.
2016-03-15 22:02:30 +01:00
kd-11
f2d5542e66
Re-enable fog parameters for vulkan
2016-03-15 22:32:32 +03:00
Vincent Lejeune
5de70628d7
rsx/common/d3d12/gl/vulkan: Unify texture upload code.
2016-03-14 19:10:51 +01:00
kd-11
d9dbb1565a
Immutable textures cannot be reused!
2016-03-14 18:14:06 +03:00
kd-11
34992d8a8f
vk: Add some more blend ops
2016-03-14 18:14:06 +03:00
Vincent Lejeune
70a80b84d7
vulkan: Zero initialize as much structure info as possible.
...
This fixes a crash with nvidia driver in present call (likely because of
some uninitialized member)
2016-03-12 22:22:28 +01:00
Vincent Lejeune
8604f5a02f
vulkan: Use d24_u8 or d32_u8 depending on hw support.
2016-03-12 15:56:23 +01:00
Vincent Lejeune
26ff4fd6b7
vulkan: Uses debug output setting to enable debug layers.
2016-03-12 15:23:39 +01:00
kd-11
82bc41f4ad
rsx: support for more formats
...
rsx: support R5G5B5A1 textures
2016-03-11 18:02:29 +03:00
kd-11
cc713a0091
vk: Release dirty resources to prevent mem leak
2016-03-10 23:55:25 +03:00
kd-11
93032be4ab
Move waiting for submit fence to the right place (nvidia crash)
2016-03-10 23:55:25 +03:00
kd-11
26964efa7e
Support stencil formats
...
Fix appveyor build
2016-03-10 23:55:25 +03:00
kd-11
47d251a818
Change render target layout before clearing
...
Use LAYOUT_GENERAL during clear; move renderpass begin to draw call end
2016-03-10 23:55:25 +03:00
kd-11
b018c91135
Make render-targets GPU resident
...
Fix minor regressions that occured during merge
2016-03-10 23:55:25 +03:00
kd-11
d910d2c572
Fix vulkan swap modes for nvidia
...
CMakeLists edits
Check for linear tiling support for all usage attributes
2016-03-10 23:55:25 +03:00
kd-11
f384d87044
Fix build dependancies and fix gcc build
...
Factor out _aligned_malloc functions to WIN32 only
Attempt to fix CmakeLists error
More CMakeLists fixes (glslang)
Add OSDependent libs
Add OGLCompiler and SPIRV as well
2016-03-10 23:55:25 +03:00
kd-11
bd52bcf8d4
Fix nvidia crash (API version). Fix linux builds
...
Properly set up vulkan API version when creating instance
Fix gcc error about passing function result by reference
Fix alot of warnings in VKGSRender project
More fixes for gcc
Fix texture create function
2016-03-10 23:55:25 +03:00
kd-11
d58bd1c916
Exclude apple from vulkan windowing stuff as it is not supported
2016-03-10 23:55:25 +03:00
kd-11
22d49ae96a
Fix build for non-WIN32 platforms
...
Link explicitly against vkstatic.1.lib
fix linux path for vulkan glsl compiler
Restore wxWidgets version
2016-03-10 23:55:25 +03:00
kd-11
3b6e3fb3b4
Rework vertex upload code and fix indexed renders
...
Rebase on current master; Refactor vertex upload code
Fix build; Minor fixes
Start preparations for merge
Fix generic indexed drawing bugs
Define WIN32_KHR only for windows
Remove linking against vulkan-1.lib
2016-03-10 23:55:25 +03:00
kd-11
d287ba44ce
Add vulkan GS backend to project
2016-03-10 23:55:25 +03:00
kd-11
ee0eb70de4
Clean up invalidated resources
2016-03-09 21:11:22 +03:00
Vincent Lejeune
9e01f2817f
gl: Use less costly glTexStorage2D instead of glTexImage2D.
2016-03-05 22:04:28 +01:00
Vincent Lejeune
8831bd0918
gl: Factorize code in rsx_gl_texture.cpp
2016-03-05 22:04:28 +01:00
kd-11
a880ce89d1
Checks for texture completeness, remove legacy GL_GENERATE_MIPMAP used wrongfully
2016-03-05 22:19:33 +03:00
Vincent Lejeune
4d71df70db
rsx-debug: Record and display index buffer content.
2016-03-05 18:48:30 +01:00
Vincent Lejeune
1dcc6858b4
d3d12/gl: Separate fog distance and fog frag in fogc input.
2016-03-05 18:25:31 +01:00
Vincent Lejeune
52e2800fb5
rsx: Reset fog mode/param to linear/1.;
...
Fix After Burner Climax fog
2016-03-05 18:25:31 +01:00
kd-11
2ae687cf00
Properly compute texture size
2016-03-05 18:54:06 +03:00
Vincent Lejeune
81fcadac38
gl: Use shared surface store (updated)
...
Update surface cache optimization to master; minor fixes
Fix mixed EOL
Remove unused include; change null bindings to 0
2016-03-05 12:21:45 +03:00
kd-11
8d3235cd7c
Properly set up fog parameters for openGL
2016-03-03 01:07:53 +03:00
kd-11
094c4057be
The lod parameter is a single float value
2016-03-02 18:34:13 +03:00
kd-11
7eb5da73fe
Allow attrib padding for types that require expansion
2016-03-02 01:09:51 +03:00
Vincent Lejeune
0ed770633b
gl: Add texture3d sampling function
2016-02-29 19:47:06 +01:00
Vincent Lejeune
32434dd848
rsx/common/d3d12/gl: Support for fog mode.
...
Fix hitman 2
2016-02-29 16:31:18 +01:00
Vincent Lejeune
9cdb74efc7
rsx/common: Add supports for quads strip
...
Used in Hitman 2
2016-02-27 19:38:16 +01:00
Vincent Lejeune
35db227af4
rsx/common/d3d12: Separate int type buffer from float type buffer.
2016-02-27 00:21:14 +01:00
Vincent Lejeune
a6ba47265f
rsx/common/gl: s32k is actually signed short unormalized.
...
gl fix
2016-02-27 00:21:12 +01:00
Vincent Lejeune
62246f75c8
d3d12/gl: Supports SSA in Fragment Shader.
2016-02-27 00:21:10 +01:00
Vincent Lejeune
a6d8d1144c
rsx/common: Supports D24X8 texture format when copying
...
Some app uses this type before setting proper depth surface
2016-02-27 00:21:08 +01:00
Vincent Lejeune
5ef7f8bf3e
rsx/common: Fix handling of UB256
2016-02-27 00:21:06 +01:00
Vincent Lejeune
a78ba8a271
d3d12: Remove depth conversion shader
...
It's actually not needed, raw depth data should be sampled as RGBA8.
2016-02-25 23:29:44 +01:00
Vincent Lejeune
263e5beb26
d3d12: Copy descriptors when reused instead of recreating them.
...
Thanks Matías N. Goldberg for the tip !
2016-02-25 23:29:43 +01:00
Vincent Lejeune
7ae680d9d1
d3d12: Avoid uploading constant buffer every draw call
2016-02-25 23:29:41 +01:00
kd-11
c5b3359c4b
Remove normalization for natively normalized formats; fix cmp attribute type
2016-02-25 17:41:03 +03:00
kd-11
974ea68cf9
Always bind null for unused shader inputs
...
Properly rename index offsets to improve readability
Handle indexed and other array cases
2016-02-25 02:29:35 +03:00
kd-11
8a3d15d4fe
Handle swizzled CELL_GCM_B8 textures
...
Properly handle swizzled single-channel textures
2016-02-24 17:44:24 +03:00
Vincent Lejeune
5a14644cd4
rsx/common/d3d12/gl: Use span in vertex upload function.
2016-02-22 20:22:47 +01:00
Vincent Lejeune
79dc835378
rsx/common: Track transform constant update.
2016-02-21 21:29:44 +01:00
Vincent Lejeune
9ef24509cb
d3d12: Use a shared root signature and add more slots
...
This allows for finer grained rebinding later.
2016-02-21 17:55:34 +01:00
Vincent Lejeune
4b54d7ece1
d3d12: Pretty printing of error messages.
2016-02-21 17:11:54 +01:00
Vincent Lejeune
c0423d513d
vulkan: Add relevant libs.
2016-02-19 20:03:30 +01:00
kd-11
a451bb574e
Enable texture and render target caching for OpenGL
2016-02-17 16:00:23 +03:00
Vincent Lejeune
1675a82efd
rsx/common/d3d12/gl: Use gsl::span in TextureUtils.cpp
...
* get_placed_texture_storage_size returns more accurate result (fix crash in Outrun)
* Factors lot of code and use integer type more carrefully
* Treat warning as error in TextureUtils.cpp
2016-02-16 18:08:22 +01:00
kd-11
3813c09be6
Properly handle inlined vertex data
...
Fix initial array offsets for dx12
2016-02-16 15:39:18 +03:00
kd-11
2230975e55
Speed up program constants upload by switching to glBufferSubData over glMapBuffer
...
Fix initialization for fragment constants buffer
Orphan buffers before update. Remove redundant binding
2016-02-15 12:53:55 +03:00
kd-11
7d70be42af
Correctly fetch correct pitch and depth for textures from RSX
...
Include vertex textures too
Set correct stride for vertex texture params
Change references to gl_Position in D3D12FragmentProgramDecompiler
Revert bad commit
2016-02-15 11:15:51 +03:00
Vincent Lejeune
837e06e85b
rsx/common/d3d12: Support non default alpha function
...
Fix After burner climax cloud effects.
2016-02-13 17:07:12 +01:00
kd-11
843d0ed298
Fragment position is given as gl_FragCoord not gl_Position
...
Fix references to gl_Position in Dx12
2016-02-12 18:34:41 +03:00
Vincent Lejeune
f0dc38cadd
rsx/common/d3d12: Support back spec/diffuse color.
...
Fix green car in Outrun.
2016-02-08 17:35:52 +01:00
Vincent Lejeune
4efa2266e6
rsx/common/d3d12: Use m_texture_dirty[i] to signal texture state change and avoid unecessary bind operation.
2016-02-08 17:35:50 +01:00
Vincent Lejeune
1f7a1e4078
rsx/common/d3d12/gl: Fix lit and rsq behavior near 0 in vertex shaders.
2016-02-08 17:35:49 +01:00
kd-11
ddf5b52360
Implement rectangle textures natively on OpenGL
2016-02-07 08:57:04 +03:00
kd-11
d3405da5c4
Fix LLVM build by changing variable to appropriate type
2016-02-05 18:57:57 +03:00
kd-11
137821c866
Move program validation from link-time to draw-time to compy with spec
2016-02-04 11:19:13 +03:00
kd-11
7b889a10cc
Add vertex texture buffers for VS input
...
Support vertex instancing in vertex shader using VertexID
Relax OpenGL requirements by removing 4.5 features
Use EXT version of TexBufferRange; Implement buffer copy using TexBuffer
Apply travis workaround by danilaml
Fix vertex upload in in case of inlined array
2016-02-03 13:38:23 +03:00
kd-11
660f491310
Rework OGL texture swizzles;
...
Decode textures using TextureUtils
Shut compiler up about missing return value (unsure)
Revert "Shut compiler up about missing return value (unsure)"
This reverts commit db43ba448776e6c0d6c90909b4037b6f698a545c.
Change some functions in rsx::gl::texture to static.
Replace large switch block in gl::textures::mandates_expansion with simple if tests
2016-02-01 20:11:33 +03:00
Vincent Lejeune
3d960064ef
d3d12: Use unnormalized_coords info in RSXFragment
2016-01-30 22:04:36 +01:00
Vincent Lejeune
f6d2409b20
rsx/common/d3d12: Support for shader window setting.
2016-01-30 21:58:12 +01:00
Vincent Lejeune
5f35f2ac7d
rsx/common/d3d12: Support for texture 1d too.
...
They are used in after burner climax
2016-01-30 01:13:15 +01:00
Vincent Lejeune
d19d9ccd0b
d3d12: Fix for #1459
2016-01-29 20:18:52 +01:00
Vincent Lejeune
149fa9d750
rsx/common: Make RSXFragmentProgram key and not just pointer.
2016-01-27 23:16:06 +01:00
Vincent Lejeune
3bd2114815
rsx-debug: Dump windows origin/pixel center.
2016-01-27 22:41:19 +01:00
Vincent Lejeune
acd384ae2d
rsx/common: Base offset is actually correctly supported.
...
Outrun uses it and cars are correctly displayed.
2016-01-27 22:05:43 +01:00
Nekotekina
7417033d7f
GLGSRender fix
2016-01-27 18:14:39 +03:00
Vincent Lejeune
aa450b56f1
d3d12: Make some memory helper structure uncopyable/unmovable.
2016-01-26 23:20:23 +01:00
Vincent Lejeune
6d70f3c237
d3d12: Compare mipmap/depth count when checking texture compatibility.
...
d3d12: Check for depth in texture cache.
Fix Resogun crash when loading a level.
2016-01-26 23:13:30 +01:00
Vincent Lejeune
6384541345
d3d12: Store vertex attributes as SRV and disable Input_layout.
2016-01-26 23:13:29 +01:00
Vincent Lejeune
3c3f92f29b
rsx/common/d3d12: Support 3d textures
2016-01-26 17:56:02 +01:00
Vincent Lejeune
24255f7883
rsx/common/d3d12/gl: Add some texture info to RSXFragmentProgram
2016-01-26 17:56:01 +01:00
Vincent Lejeune
b71caa94ac
rsx-debug: Print number of vertex draw again.
2016-01-25 18:48:53 +01:00
Vincent Lejeune
9b8522e734
rsx/common: Div is vector over scalar division
...
According to investigation on Resogun.
2016-01-24 00:13:17 +01:00
Vincent Lejeune
4ce4cf5242
rsx: Add vertex input and output in RSXVertexProgram.
2016-01-22 01:24:54 +01:00
DHrpcs3
19ce0cdc09
rsx methods constants moved to rsx namespace
...
minor fix
2016-01-20 20:12:48 +03:00
DHrpcs3
2e58f312d5
rsx: implemented internal tasks queue (WIP)
2016-01-20 17:12:49 +03:00
DHrpcs3
7523d01e0f
Code style fixes #2
2016-01-20 16:39:06 +03:00
DHrpcs3
7972cb5bdc
Code style fixes #1
2016-01-20 16:23:25 +03:00
DHrpcs3
685d5d3ea3
Access violation handled by rsx::thread
...
gfxHandler -> rsx::g_access_violation_handler
2016-01-20 15:46:58 +03:00
Vincent Lejeune
f453194e32
rsx: Fix int type not big enough
...
Fix glitch in After Burner Climax
2016-01-19 23:24:39 +01:00
Vincent Lejeune
440c637b1f
rsx/common/d3d12: Move surface_store in common
2016-01-19 22:49:10 +01:00
Vincent Lejeune
6aac972bda
d3d12/gl: Use r1 as depth output.
...
The "Output_from_h0" flag seems to concern color output.
There might be another flag for depth from half float value.
2016-01-19 00:45:26 +01:00
Vincent Lejeune
1ce49b60d9
rsx-debug/d3d12: Support all rtt formats.
2016-01-17 20:02:30 +01:00
Vincent Lejeune
26f329d186
d3d12: Fix dsv increment size
...
Typo.
2016-01-16 18:25:20 +01:00
Vincent Lejeune
5ace4438e2
d3d12: Fix texture proj
...
I misinterpreted "last component" from glsl doc... it's w, not z.
2016-01-16 18:25:19 +01:00
Vincent Lejeune
b8e10225f9
d3d12: Use first color output for alpha discard instead of 0.
...
Fix Naruto 2 shader miscompilation.
2016-01-16 18:25:18 +01:00
Vincent Lejeune
224facf3ba
d3d12: Never pass nullptr as render target descriptor, even if unused.
...
Function interface doesn't allow this.
2016-01-16 18:25:16 +01:00
Vincent Lejeune
3b4339c8e0
rsx: Use enum class for surface related regs
2016-01-15 23:44:27 +01:00
Nekotekina
960668ecf1
For #1355
...
offsetof() eliminated
OFFSET_32, SIZE_32, ALIGN_32 used
2016-01-14 19:07:27 +03:00
raven02
74ec128e62
Use CELL_GCM_TEXTURE_CONVOLUTION_MAG for Mag 4
2016-01-14 19:00:16 +03:00
Vincent Lejeune
69272edba6
gl: Fix warnings and enable trat warning as error.
2016-01-13 23:53:11 +01:00
Nekotekina
38531459df
Logging system rewritten
...
GUI doesn't freeze anymore
Some things simplified
2016-01-13 18:54:57 +03:00
Nekotekina
b3e3c68f15
File utility improved
...
+ minor fixes
2016-01-13 14:12:04 +03:00
Vincent Lejeune
689dee9944
rsx/common/d3d12: Consider separate index range as a whole.
...
Fix Wolf of the Battlefield 3
2016-01-13 00:28:48 +01:00
Vincent Lejeune
08622a41b4
d3d12: Use CHECK_HRESULT in D3D12Utils.cpp
2016-01-11 21:17:33 +01:00
Vincent Lejeune
669a3277ff
d3d12: Support mag filter 4
2016-01-11 21:17:32 +01:00
Vincent Lejeune
e6bd681227
d3d12: factorize render_target code in a template class to be shared with others backends.
2016-01-11 20:47:01 +01:00
Vincent Lejeune
0c5cfdddba
d3d12: Gather constant and vtx/idx heap and turn readback heap to buffer
2016-01-11 20:46:58 +01:00
Vincent Lejeune
bab52c132d
rsx/common/d3d12/gl: Clean ProgramStateCache
...
Use a_b_c format.
Use using =
Use tuple as output
Use RAII to delete program safely
Ensure const correctness.
2016-01-11 19:21:57 +01:00
DHrpcs3
8297d963bf
d3d12 texture cache: align to bottom texture address
2016-01-10 23:28:30 +02:00
DHrpcs3
a17c41b4e1
nv4097::get_report: use DMA
2016-01-10 23:22:55 +02:00
Vincent Lejeune
4ef76866a5
rsx/common/d3d12/gl: Support texture lod sampling.
2016-01-10 00:16:26 +01:00
Vincent Lejeune
675ccd4510
rsx/common/d3d12/gl: Mimic divsq and rsq fragment instruction behaviour with 0.
...
Fix Super Puzzle Turbo HD 2 and SH3 HD
2016-01-09 23:18:05 +01:00
Vincent Lejeune
31a925b4f0
rsx: reenable frame capture
...
Likely commented out by accident.
2016-01-09 23:18:04 +01:00
Vincent Lejeune
d153575e59
rsx/common/d3d12/gl: Support for CMP/non pow of 2 size vertex formats.
...
Also use class enum for base_vertex_type everywhere.
Fix Bomberman Ultra color and Cubixx HD geometry.
2016-01-09 23:18:03 +01:00
DHrpcs3
e9560da4e2
nv3089::image_in: use in_x/in_y & out_x/out_y
2016-01-06 13:47:05 +02:00
DHrpcs3
6406cece57
nv3089::image_in: fixed reading from tiled regions
2016-01-06 13:30:26 +02:00
DHrpcs3
f7e787958e
fixed nv3089::image_in scale value
2016-01-06 13:30:25 +02:00
DHrpcs3
8912b9880e
rsx: initialize vertex textures on reset
2016-01-06 13:30:25 +02:00
DHrpcs3
3ac9e0933f
gl: fixed nv4097_clear_surface & front face selection
...
added window shader and clip plane constants to GCM.h
2016-01-06 13:30:25 +02:00
DHrpcs3
c1be0cf3bf
Added missed files
2016-01-06 13:30:24 +02:00
DHrpcs3
48919330d7
rsx methods moved from rsx thread
2016-01-06 13:30:24 +02:00
DHrpcs3
ba12c489ec
gl: using tiled region for read/write color buffers and flip
...
gl: fixed flip buffer row length
compilation fixes
2016-01-06 13:30:23 +02:00
DHrpcs3
dbccf5fbad
gl: fixed multiple textures binding
2016-01-06 13:30:23 +02:00
DHrpcs3
509bbddac1
OpenGL renderer: use pitch as image row length
...
Fixed rsx_utils code style
2016-01-06 13:30:23 +02:00
DHrpcs3
11ccc498fd
Reimplemented nv3089::image_in
2016-01-06 13:30:22 +02:00
DHrpcs3
836d14c8af
rsx::pad_texture & rsx::convert_linear_swizzle moved to rsx_utils
...
Added rsx::convert_scale_image & rsx::clip_image to rsx_utils
2016-01-06 13:30:22 +02:00
DHrpcs3
5a4babb0fd
Implemented basic tiled regions support
2016-01-06 13:30:22 +02:00
Vincent Lejeune
cae2d929ab
rsx/common/d3d12/gl: Implement draw inline array support
2016-01-05 00:31:47 +01:00
Vincent Lejeune
f38d0e92e7
d3d12: Avoid implicit cast from int to bool in CHECK_HRESULT macro
2016-01-03 21:51:39 +01:00
Vincent Lejeune
854365e6ce
d3d12: Reenable missing case for CELL_GCM_PRIMITIVE_LINE_LOOP
2016-01-03 21:51:38 +01:00
Zangetsu38
3529554c88
d3d12: Fix Super Dub 'a' Dub
2016-01-03 21:51:37 +01:00
Zangetsu38
2a1f19b776
d3d12: Fix for BIT.TRIP Runner2
2016-01-03 21:51:35 +01:00
Vincent Lejeune
324b2da3ec
d3d12: Recreate RTTs if size doesn't match.
...
Fix Bomberman Ultra
2016-01-03 21:51:34 +01:00
Vincent Lejeune
07f6896622
d3d12: Throw if program failed to build.
2016-01-03 21:51:33 +01:00
Vincent Lejeune
8417e21e8d
d3d12: Set command heap only when necessary.
2016-01-03 21:51:31 +01:00
Vincent Lejeune
bc3065939f
rsx-debug: dump anti aliasing control
2016-01-03 19:16:50 +01:00
Vincent Lejeune
d1e91433ad
rsx-debug: Dump anti aliasing mode.
2016-01-03 19:16:49 +01:00
Vincent Lejeune
4e7e895822
rsx-debug: Dump some more opcodes.
2016-01-03 19:16:48 +01:00
Vincent Lejeune
3586c7613a
rsx/common: Fix program state cache Shader program comparaison.
...
Comparaison was not taking the last instruction of shader into account.
Also remove "constant masking" since it wasn't actually usefull.
Fix DBZ: Burst Limits, SH3 and likely much more games.
2016-01-02 00:47:51 +01:00
Vincent Lejeune
5f12a4f7b5
rsx/common/d3d12/gl: Use separate vertex array/vertex register states.
2015-12-30 17:04:34 +01:00
Vincent Lejeune
969e2d8c57
rsx/common: Support RSX_FP_OPCODE_DIV for scb
...
Fix glitches in dbz
2015-12-29 17:08:01 +01:00
Vincent Lejeune
44840dbbcf
d3d12: Support early return in fragment shaders.
2015-12-28 00:19:37 +01:00
Vincent Lejeune
d6b2230b92
d3d12: Revert some value in get_blend_factor_alpha
...
fix crash in SH3
2015-12-28 00:19:35 +01:00
Vincent Lejeune
c4b3b967d9
d3d12: Fix warnings andnable warnings as errors.
2015-12-23 22:26:23 +01:00
Vincent Lejeune
b41fcf3734
d3d12: name rtts/ds/texture for debugging purpose
2015-12-23 22:26:22 +01:00
Vincent Lejeune
ecad586739
d3d12: Names PSO for debug purpose.
2015-12-23 22:26:20 +01:00
Zangetsu38
64036e0478
d3d12: fix return correct value in d3d12format
2015-12-23 22:26:19 +01:00
Vincent Lejeune
9c6539ea2d
rsx/common/d3d12: Force depth to be at least 1.
2015-12-23 22:26:18 +01:00
Vincent Lejeune
a97dc349b7
rsx/common: If swizzle bit is not set then there is no padding, even for dxtc textures.
...
Fixes some textures in dbz and after burner climax.
2015-12-23 22:26:16 +01:00
Nekotekina
3ed603074c
Changes done by [DH] rewritten
...
Added rsx_program_decompiler submodule
Added fs::dir iterator
Added fmt::match
2015-12-22 23:11:20 +03:00
DHrpcs3
3ca634138d
Fixed conflict with X11
...
Added tmp folder to gitignore
2015-12-21 08:48:33 +02:00
DHrpcs3
d8bef46c2a
Do not use global static variables in headers
2015-12-21 05:35:56 +02:00
DHrpcs3
ae83ab5436
GLTexture excluded from GLGSRender and renamed to rsx::gl::texture
2015-12-21 04:14:56 +02:00
DHrpcs3
7416fe91fc
Fixed crash on start if config does not exists
...
Cleanup OpenGL renerer
2015-12-21 03:28:07 +02:00
Nekotekina
f2df9b469a
ThrowIfFailed replaced with CHECK_HRESULT macro
2015-12-20 15:41:11 +03:00
Nekotekina
aa811b6eef
Cleanup (noexcept, unreachable)
...
%x formatting fixes
2015-12-20 15:41:07 +03:00
Nekotekina
321e6d3a86
fs::get_config_dir, fs::get_executable_dir
2015-12-20 15:41:06 +03:00
Vincent Lejeune
69b3828086
rsx/common: Vertex program condition swizzle should apply to cc0, not float4(0.)
2015-12-16 20:36:50 +01:00
Zangetsu38
a44c54b428
d3d12: Fix error Last commit
2015-12-16 20:36:48 +01:00
Zangetsu38
dc5a439ec9
d3d12: Code style fix for function return
2015-12-16 20:36:46 +01:00
Zangetsu38
81f05daff2
d3d12: Add more log callback for support dev
2015-12-16 20:36:45 +01:00
Vincent Lejeune
456f83671a
d3d12: Add formatting abilities to unreachable macro
2015-12-16 20:36:43 +01:00
Vincent Lejeune
d7b4b2fd49
d3d12: Support surface format R5G6B5
2015-12-16 20:36:41 +01:00
Vincent Lejeune
27807f3a61
d3d12: D8R8G8B8 and A8R8G8B8 are essentially the same.
2015-12-16 20:36:39 +01:00
Vincent Lejeune
fcf7751008
d3d12: Fix handling of disabled texture
...
Fix After Burner Climax textures.
2015-12-16 20:36:38 +01:00
Vincent Lejeune
1cda2977bb
common/d3d12: emulate polygon mode
2015-12-16 20:36:36 +01:00
Vincent Lejeune
6221fecf3b
common/d3d12/gl: Start implementing cubemap sampling
2015-12-16 20:36:34 +01:00
Vincent Lejeune
80dc122742
common/d3d12: Clean texture upload code.
...
Some typos are fixed in the process
2015-12-16 20:36:32 +01:00
Vincent Lejeune
929f518ef3
rsx/d3d12/gl: Make output write backend dependent.
2015-12-16 20:36:31 +01:00
Vincent Lejeune
6fae5863cf
common/d3d12/gl: Add support for textureProj
2015-12-16 20:36:29 +01:00
Jake
6f584049a2
rsx: NV3089_image_in: Fix braid and Jet Set Radio
2015-12-14 19:16:12 -06:00
Zangetsu38
27ad98ee98
Fix for Shovel Knight
2015-12-12 23:21:24 +01:00
Nekotekina
3465106456
Shared PCH (experimental)
...
"Rebuild" is broken though.
2015-12-04 23:37:44 +03:00
Nekotekina
24128ba450
Optimization
2015-12-04 23:37:42 +03:00
Nekotekina
f3311bb5e5
GL render crash fix
2015-12-04 23:37:36 +03:00
Nekotekina
8a1ce6ba64
MINGW64 fix
2015-12-04 23:37:35 +03:00
Nekotekina
ca6783ba9a
Threads improved, ID manager improved
2015-12-04 23:37:34 +03:00
Jake
52be47ca89
rsx: Style changes
2015-12-02 07:06:40 -06:00
Jake
19cf749944
rsx: fix convert_linear_swizzle converting backwards
2015-12-02 04:22:19 -06:00
Jake
178bcfc8df
rsx: Improve NV3089_IMAGE_IN_SIZE and use faster loop for swizzle conversions
2015-12-02 04:22:18 -06:00
Jake
83cb137721
rsx: add missing transfer enums
2015-12-02 04:22:17 -06:00
Jake
8edf35a9e3
gl: remove incorrect/unneeded glenable enum
2015-12-02 04:22:16 -06:00
Zangetsu38
450c8245ed
Fix Jet Set Radio
2015-12-01 23:18:29 +01:00
Vincent Lejeune
88d7feda5c
d3d12: Support unormalized texture coordinates
2015-12-01 23:18:27 +01:00
Vincent Lejeune
c9c436e6fc
d3d12: In case of non supported rtt fallback to R8G8B8A8 format.
2015-12-01 22:42:36 +01:00
Vincent Lejeune
f4091b1027
d3d12: Fix fragment shader accessing to gl_Position
2015-12-01 22:42:34 +01:00
Vincent Lejeune
174fb97172
d3d12: Fix for case where fragment shaders samples textures starting from non first unit.
2015-12-01 22:42:33 +01:00
Vincent Lejeune
377bdae6a9
rsx-debug: Move pretty_printing code to GCM.cpp and support transform constants and some texture opcodes
2015-11-30 19:09:45 +01:00
Vincent Lejeune
a21c9f9861
rsx: Avoid mixing float4 and int4 in declaration of AddrReg.
2015-11-30 17:35:51 +01:00
Vincent Lejeune
1e9d1c1dd9
gl: Uncomment viewport setting code
2015-11-29 18:22:53 +01:00
Vincent Lejeune
399478c2cd
gl: Use const and ref for loops in GLFragmentProgram.cpp
2015-11-29 18:20:43 +01:00
Vincent Lejeune
c86cfef58e
rsx/common: Remove getFragmentConstantOffsetsCache
2015-11-28 20:58:00 +01:00
Vincent Lejeune
7a996648bb
gl: Use fill_gragment_constans_buffer
2015-11-28 20:41:30 +01:00
Vincent Lejeune
a19a9b5585
d3d12: fallback to linear filter when mag filter is not known.
2015-11-26 20:21:26 +01:00
Vincent Lejeune
f3dd9596cf
d3d12: Use address instead of context_dma value to determine whether to write buffers
...
Fixed depth read test when write color buffer is enabled
2015-11-26 18:10:21 +01:00
Vincent Lejeune
115255c162
d3d12: Fallback to bilinear filtering if convolution min one is used.
2015-11-26 18:05:27 +01:00
Vincent Lejeune
984f5c6914
d3d12: Fix depth readback format
2015-11-26 18:05:26 +01:00
Vincent Lejeune
fa845fa5c0
d3d12: Add support for F_X32 surface format
2015-11-26 18:05:25 +01:00
Vincent Lejeune
579096c6a8
d3d12: Discard rtt if format has changed.
2015-11-26 18:05:23 +01:00
Vincent Lejeune
7e938b2363
d3d12: Use INCR for stencil op when an unknow op is used.
...
Fixes shadows in Jet Set Radio.
2015-11-26 18:04:53 +01:00
Vincent Lejeune
0d2c4c24b4
d3d12: Use a single big buffer to store readback data
2015-11-25 17:54:58 +01:00
Vincent Lejeune
b9d8d9383a
rsx/d3d12: dump program content when capturing frame
2015-11-24 23:34:03 +01:00
Vincent Lejeune
85cf918aeb
rsx: Add none target to gcm pretty printing
2015-11-24 23:14:07 +01:00
Vincent Lejeune
b5add0f027
rsx: better naming for draw calls
2015-11-24 23:14:05 +01:00
Vincent Lejeune
5447521ce5
gl: Use uniform buffer for transform constants.
2015-11-19 20:26:14 +01:00
Vincent Lejeune
3e5f0e5c37
rsx: Add missing SCB DIVSQ opcode support
...
Fix a lot of gfx glitches in SH3 HD
2015-11-19 19:24:58 +01:00
Vincent Lejeune
9fdc458d69
rsx: Make SCT/SCB/TEX SRB function complete member of FragmentProgram
2015-11-19 19:24:57 +01:00
Nekotekina
4a669fd86e
DX12 dependencies fix
2015-11-17 21:00:59 +03:00
Vincent Lejeune
307015382d
d3d12: Support default value for stencil op
...
Requested by Jet Set Radio.
2015-11-16 23:32:38 +01:00
Vincent Lejeune
471e807ea2
d3d12: Fix some typo in render target code
...
Should bring performances back
2015-11-16 23:32:37 +01:00
Vincent Lejeune
bb4b12f253
d3d12: Texcoord9 is actually stored in register 6.
...
Fix shadow mapping in SH3 HD.
2015-11-16 23:32:35 +01:00
Vincent Lejeune
432bca26ae
d3d12: Add support for reading depth texture
2015-11-16 23:32:34 +01:00
Nekotekina
5f6caf33f0
MINGW64: Compilation fix
2015-11-16 19:12:51 +03:00
Vincent Lejeune
e2d0a63b98
gl: Use factored scale offset function call
2015-11-15 22:52:39 +01:00
Vincent Lejeune
570ca1c87f
d3d12: Use a_b_c style for D3D12GSRender.h members
2015-11-15 20:21:44 +01:00
Vincent Lejeune
2ac47548b0
rsx: Set registers individually
...
Not all games set registers up to the third subcomponent. Fixes SH 3 HD
textures.
2015-11-15 17:20:43 +01:00
Vincent Lejeune
a79ffdb485
rsx/common: Fix ARL register type and write function in vtx shader
2015-11-15 17:20:41 +01:00
Vincent Lejeune
e9d9bad643
rsx: reset register after each flip
...
Some overlay operation are executed when a flip is requested, it may
change register states. Fix depth buffer in SH3
2015-11-15 17:20:20 +01:00
Nekotekina
080e503954
Compilation fix
2015-11-14 20:26:41 +03:00
Nekotekina
a4db58f5f2
Added fs::file_ptr, fom::rewrite, cleanup
2015-11-14 20:26:40 +03:00
Vincent Lejeune
039e729881
d3d12: Fix scissor
2015-11-12 18:29:04 +01:00
Vincent Lejeune
c152c20d70
d3d12: Fix wrong front_face_ccw value for Disgaea 3
2015-11-12 18:29:03 +01:00
Vincent Lejeune
917f08c534
d3d12: Fix depth range
2015-11-12 18:29:02 +01:00
Vincent Lejeune
ae5d95d462
rsx/common: Take primitive restart index in account and turns it into -1.
2015-11-12 18:29:01 +01:00
Vincent Lejeune
925d6889a6
d3d12: Use ring buffer like rtv/dsv descriptor heap
2015-11-12 18:29:00 +01:00
Raul Tambre
9c2f48cd1d
More defect fixes, added some error codes
2015-11-09 07:39:50 +02:00
Raul Tambre
fac9d74344
Lots of defect fixes
2015-11-09 07:39:50 +02:00
Vincent Lejeune
70b9271cd8
rsx/d3d12: Record frame buffer content per draw call.
2015-11-08 19:34:18 +01:00
Vincent Lejeune
8da7361794
rsx: Expand some rsx register disasm.
2015-11-08 19:12:27 +01:00
Vincent Lejeune
0cc4b555d1
d3d12: Comment out LLVM_BUILTIN_UNREACHABLE and display error msg in log
2015-11-07 22:52:13 +01:00
Vincent Lejeune
e76abf875f
d3d12: Clean rtt related code
2015-11-07 22:52:12 +01:00
Vincent Lejeune
2a9895b7f0
rsx/d3d12: Move fragment constants filling code to ProgramStateCache
2015-11-06 20:08:45 +01:00
Vincent Lejeune
2ad7051746
rsx/d3d12: Move vertex constants filling code to RSXThread
2015-11-06 20:08:41 +01:00
Vincent Lejeune
02ce78482c
rsx/d3d12: Move scale offset buffer setting to RSXThread
2015-11-06 20:08:17 +01:00
Vincent Lejeune
449c41aca2
d3d12: Support size changing depth buffer
2015-10-30 18:28:27 +01:00
Vincent Lejeune
2043181501
d3d12: Suppress a warning if no rtt is bound
...
Rendering depth only is legal.
2015-10-30 18:10:41 +01:00
Vincent Lejeune
a2f7f371dc
d3d12: Add an extra varying.
...
This fixes shader compilation for SH3 HD.
2015-10-30 00:04:10 +01:00
Vincent Lejeune
29cde1a618
d3d12: Clean Overlay code
2015-10-30 00:04:09 +01:00
Vincent Lejeune
c570d60f45
d3d12: Add newline at the end of every file
2015-10-29 19:12:46 +01:00
Vincent Lejeune
c197b54774
d3d12: Rename D3D12GSRender function
...
Match a_b_c coding style.
2015-10-29 18:48:53 +01:00
Vincent Lejeune
124d0de325
d3d12: Move storage helpers to their dedicated files.
2015-10-29 18:48:52 +01:00
Vincent Lejeune
fdae12c52e
d3d12: Move empty texture slot filling code to D3D12Texture.
2015-10-29 18:48:52 +01:00
Vincent Lejeune
59c549ac86
d3d12: Clean D3D12GSRender
...
* Use anonymous namespace
* Use a_b_c code style
* Fix static analysis warning.
2015-10-29 18:48:51 +01:00
Vincent Lejeune
1ec18bdf64
RSX/common: Clean BufferUtils code
...
* Add noexcept
* Use a_b_c code style
* Use anonymous namespace
2015-10-29 18:48:50 +01:00
Vincent Lejeune
42467ba40f
RSX/common: Clean TextureUtils code.
...
* Use a_b_c code style
* Add noexcept
* Use anonymous namespace
2015-10-29 18:48:50 +01:00
Vincent Lejeune
8f84fca0f2
d3d12: Fix some unintialised value warning.
2015-10-29 18:48:49 +01:00
Vincent Lejeune
0e3ab35e32
d3d12: Fix sampler border color
2015-10-29 18:48:48 +01:00
Vincent Lejeune
119126c60c
d3d12: Move enum conversion to a separate files.
...
* Add noexcept
* Use unreachable
* Use a_b_c style
2015-10-29 18:48:48 +01:00
Vincent Lejeune
5c42a3cbc4
d3d12: Add a unreachable function used as debug/optimisation hint
2015-10-29 18:48:47 +01:00
Vincent Lejeune
6133590903
d3d12: Rename d3d12.h to avoid conflicts
2015-10-29 18:48:46 +01:00
Vincent Lejeune
8afa6e59b2
RSX: Returns texture bias as a float, considering the stored value is a half float.
2015-10-27 01:24:04 +01:00
Vincent Lejeune
9f49232cac
d3d12: Avoid copying index data and use correct index range.
...
This fixes Braid.
2015-10-27 01:24:04 +01:00
Vincent Lejeune
bc7e30517b
d3d12: Add support for primitive restart.
2015-10-27 01:24:03 +01:00
Vincent Lejeune
fe902cbb13
d3d12: Use provided constants to set alignments
2015-10-27 01:24:03 +01:00
Vincent Lejeune
42f3296791
d3d12: Try to support undef vertex input
2015-10-27 01:24:02 +01:00
O1L
c0255208cc
Old ini-manager only partially used in VFS. Global configuration used as defualt.
2015-10-27 01:09:31 +04:00
O1L
89f14ec5ac
Ported more options in new ini-manager. Use later.
2015-10-25 18:44:49 +04:00
Nekotekina
d4e0da3f80
DX12 fix + rpcs3-tests project
2015-10-21 13:31:29 +03:00
Vincent Lejeune
a462b4518c
d3d12: Move d3d12 files to separate solution.
...
It simplify solution configurations.
2015-10-17 04:15:58 +02:00
Vincent Lejeune
f5bd044096
d3d12: Lower alignement constraint for vertex index
2015-10-15 17:13:43 +02:00
Vincent Lejeune
a2997a1109
d3d12: Avoid an extra vertex copy
2015-10-15 17:13:43 +02:00
Vincent Lejeune
b0f8611f49
Common/GL/D3D12: Fix int vector ctor in vertex shader and a compare opcode.
2015-10-15 17:13:42 +02:00
Vincent Lejeune
de97d3a7aa
d3d12: Zero vertex shader output.
2015-10-15 17:13:42 +02:00
Vincent Lejeune
0e98da2306
d3d12: Make descriptor heap a little more compact.
2015-10-15 17:13:40 +02:00
Vincent Lejeune
5a064be490
Fix d3d12 build.
2015-10-15 17:05:56 +02:00
Nekotekina
ec0005195d
RSX fix
2015-10-14 22:51:27 +03:00
Nekotekina
a974ee009e
vm::var improved, cleanup
...
Mostly vm::var initialization introduced.
Added vm::make_var function.
2015-10-14 18:17:37 +03:00
DH
a443682aaf
OpenGL renderer fixes
...
Fixed attributes loading
Fixed scale-offset matrix
Fixed attribute debug option
2015-10-14 14:34:55 +03:00
DH
4a55ba3067
OpenGL renderer improvements
...
Flush program cache at thread exit
Use cached locations
2015-10-14 03:16:39 +03:00
DH
37a3800597
rsx: 🧵 disable all vertex data at end command
...
Fixed OpenGL program attributes cache flush
2015-10-14 01:49:47 +03:00
DH
5de1ea3fd4
Fixed bind rsx method to range implementation
2015-10-13 22:59:25 +03:00
DH
07b3897499
Trying do not use macro for methods binding to range
2015-10-13 20:44:58 +03:00
DH
737080274a
Improved NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE and NV4097_TEXTURE_READ_SEMAPHORE_RELEASE commands handling
2015-10-13 20:39:36 +03:00
DH
e4f6eb04e8
Added new config system
...
Added emulator state class
Added emulator events
Minor improvements
2015-10-13 20:32:08 +03:00
Vincent Lejeune
ff01e26c5c
RSX: Fix immediate vertex values
2015-10-13 14:29:38 +02:00
Vincent Lejeune
fc40b0ed6b
RSX: Let backend customize semaphore_*_release
2015-10-13 14:28:58 +02:00
Vincent Lejeune
a63fdf6c45
Use files from master
...
- Drop smart vertex storage and use OpenGL's one instead.
2015-10-13 14:27:17 +02:00
Vincent Lejeune
4154a1026f
Rename RSXThread
2015-10-13 00:04:19 +02:00
Vincent Lejeune
b5127e68de
Remove m_ prefix
2015-10-13 00:04:18 +02:00
Vincent Lejeune
dd000caad7
Remove context_dma*
2015-10-13 00:04:18 +02:00
Vincent Lejeune
86fff9800f
Remove base offset
2015-10-13 00:04:16 +02:00
Vincent Lejeune
2679e4f526
remove rsxtransformconstant
2015-10-13 00:04:16 +02:00
Vincent Lejeune
1e431edf09
Remove fragment program
2015-10-13 00:04:15 +02:00
Vincent Lejeune
67f1f0fea3
Remove fragment constants
2015-10-13 00:04:15 +02:00
Vincent Lejeune
beabc88f79
Remove transform constants
2015-10-13 00:04:14 +02:00
Vincent Lejeune
e086b7a522
Remove cull/front face
2015-10-13 00:04:13 +02:00
Vincent Lejeune
dd1afe85ae
Remove alpha func
2015-10-13 00:04:13 +02:00
Vincent Lejeune
60bccf0f10
Remove RSXVertexArray
2015-10-13 00:04:12 +02:00
Vincent Lejeune
73535e0c04
remove m_surface*
2015-10-13 00:04:12 +02:00
Vincent Lejeune
16311b36b0
Remove viewport clip
2015-10-13 00:04:11 +02:00
Vincent Lejeune
537187687d
Remove blend
2015-10-13 00:04:10 +02:00
Vincent Lejeune
403f585a19
Remove color mask
2015-10-13 00:04:10 +02:00
Vincent Lejeune
8dd19d1446
Remove color target
2015-10-13 00:04:09 +02:00
Vincent Lejeune
71552f7ffe
Remove logic Op
2015-10-13 00:04:09 +02:00
Vincent Lejeune
b2a7f0fd11
Remove stencil
2015-10-13 00:04:08 +02:00
Vincent Lejeune
529efd6ac8
Remove depth
2015-10-13 00:04:07 +02:00
Vincent Lejeune
ed61023dd3
Remove clear_surface_color
2015-10-13 00:04:07 +02:00
Vincent Lejeune
28cdfa9feb
Rename some methods.
2015-10-13 00:04:06 +02:00
Vincent Lejeune
bf474f0cdb
remove m_ for textures
2015-10-13 00:04:06 +02:00
Vincent Lejeune
d27f6c8fa7
Use rsx::limits values
2015-10-13 00:04:05 +02:00
Vincent Lejeune
6f71d04aa4
move linear to swizzle and get_size_type
...
symbol undef though
2015-10-13 00:04:04 +02:00
Vincent Lejeune
3de47c201c
RSX: Create a rsx namespace.
...
Put get_address inside.
2015-10-13 00:04:04 +02:00
Vincent Lejeune
e3e5b46cbf
Remove m_ prefix on some members of RSXThread
2015-10-13 00:04:03 +02:00
Vincent Lejeune
4cd9e5754e
d3d12: Fix build in debug
2015-10-13 00:04:03 +02:00
Vincent Lejeune
ceab44b9ab
d3d12: Remove D3DGSFrame
2015-10-13 00:04:02 +02:00
Vincent Lejeune
0138a95567
RSX: Remove using namespace ps3 in header
2015-10-13 00:04:02 +02:00
Vincent Lejeune
d86469c2f5
Add Utilities/types.h
2015-10-13 00:04:01 +02:00
Vincent Lejeune
f483c3b9ca
Revert "Merge pull request #1245 from DHrpcs3/master"
...
This reverts commit 5feba39ff7 , reversing
changes made to ebf28f8da0 .
2015-10-09 20:04:20 +02:00
DH
6cb036d35f
Fix for gcc/clang build
2015-10-08 00:05:04 +03:00
DH
cc0c3fc98d
Implemented fragment constants loading (OpenGL renderer)
...
Fixed nv308a::color
Minor improvements
2015-10-07 17:36:26 +03:00
DH
86720f90cd
rsx: 🧵 initialize flip_status
...
Fixed clear_surface (OpenGL)
Enabled some RSXDebugger features (disasm and textures/buffers view)
Minor improvements
2015-10-06 01:22:21 +03:00
DH
3721941ffb
Fixed OpenGL renderer crash
...
Temporary downgraded OpenGL requirements to OpenGL 3.1 (GLSL 1.40)
Fixed some D3D12 Renderer compilation errors
2015-10-05 18:40:22 +03:00
DH
4fdeeace66
D3D12Renderer: fixed some compilation errors
...
Removed GSFrameBase2 and D3DGSFrame.
Added frame for NullRender.
Minor improvements and fixes
2015-10-05 13:03:23 +03:00
DH
1c890f85c5
OpenGL: do not align buffers
2015-10-05 12:56:05 +03:00
DH
6cd62a9fd0
OpenGL: fixed nv4097_clear_surface implementation
...
minor improvements
2015-10-05 12:56:05 +03:00
DH
1e7ded2163
rsx::thread moved from rsx2 branch
...
TODO: cellResc module & RsxDebugger disabled, DX12 renderer not compilable
2015-10-05 12:56:05 +03:00
Vincent Lejeune
d511153836
Common: Fix element count computation if addr is null (RSXVertexData)
2015-10-05 01:57:57 +02:00
Vincent Lejeune
2f211e4e5a
d3d12: Move adapter's description to settings.
2015-10-05 00:24:56 +02:00
Vincent Lejeune
a5ecbd0b2b
d3d12: Do not regenerate RTTs if they didn't change between draw call.
2015-10-05 00:24:56 +02:00
Vincent Lejeune
8d986e77d1
d3d12: Reuse texture resources
2015-10-05 00:24:55 +02:00
Vincent Lejeune
3d643fbc0b
d3d12: Factorise texture cache management.
2015-10-05 00:24:55 +02:00
Vincent Lejeune
81546d357c
d3d12: Do not use atomic for heaps
2015-10-03 18:25:28 +02:00
Vincent Lejeune
3acc900363
d3d12: Clean dirty texture when releasing resource storage
...
When an app is exiting, remaining dirty texture could be left uncleant.
2015-10-03 18:25:27 +02:00
Vincent Lejeune
6b0d29a72d
d3d12: Measure flip duration
2015-10-03 18:25:27 +02:00
Vincent Lejeune
442abcc6f1
d3d12: Wrap D3D11On12CreateDevice to avoid linking against D3D12 dll
2015-10-03 18:25:19 +02:00
Vincent Lejeune
c7b7d1f71f
Common: Move generic vertex buffer code from d3d12 backend
2015-10-03 18:25:19 +02:00
Vincent Lejeune
62d7bf2159
Common: Move generic upload texture code from d3d12
2015-10-03 18:25:18 +02:00
Vincent Lejeune
07e13b8613
d3d12: Suballocate from big buffer for texture upload too
2015-10-03 18:25:17 +02:00
Vincent Lejeune
f1f31e22f9
d3d12: Use d3dx12 structs for Root signature declarations
2015-10-03 18:25:17 +02:00
Vincent Lejeune
9a0232bc87
d3d12: Use d3dx12.h defined structs for constant buffers code
2015-10-03 18:25:16 +02:00
Vincent Lejeune
8e83ad7b65
d3d12: Fix sampler descriptor stride in UploadTextures.
2015-10-03 18:25:16 +02:00
Vincent Lejeune
703b1636c8
d3d12: Do not use array size to get vertex buffer element count.
2015-10-03 18:25:15 +02:00
Vincent Lejeune
37721d6b8a
d3d12: Use big buffer instead of placed resource for vertex index storage
...
Increase perf in Disgaea 3
2015-09-25 22:35:22 +02:00
Vincent Lejeune
8ba74a7f7d
d3d12: Add some more counter to debug overlay
2015-09-25 22:35:21 +02:00
Vincent Lejeune
506fdec6df
d3d12: Copy vertexbuffer in vram for output scaling pass.
2015-09-25 22:35:21 +02:00
Vincent Lejeune
de5a3451cd
d3d12: Force command queue completion
2015-09-25 22:35:20 +02:00
Vincent Lejeune
23bd197bd4
d3d12: clean code
2015-09-25 22:35:19 +02:00
Vincent Lejeune
f10c812301
d3d12: Use d3dx12.h defined struct.
2015-09-25 22:34:34 +02:00
Vincent Lejeune
ae51ce2349
d3d12: Fix a comment
2015-09-25 16:24:45 +02:00
Vincent Lejeune
fa6e2bfe02
d3d12: Add d3dx12.h from DX sample on github
2015-09-25 16:23:03 +02:00
Nekotekina
8ae3401ffa
Some things improved
...
shared_mutex_t implemented
GUI Emu Callbacks rewritten
fxm::import, fxm::import_always implemented
cellMsgDialog rewritten
Emu.CallAfter improved (returns std::future)
2015-09-22 16:48:21 +03:00
Vincent Lejeune
97f62571ff
d3d12: Properly clean protected page in dtor
2015-09-18 22:36:22 +02:00
Vincent Lejeune
c31c0c40a4
d3d12: Fix ARGB8 swizzle and support swizzling of rtts
...
Fix harem tengoku colors.
2015-09-18 22:36:21 +02:00
Vincent Lejeune
12f00a5e16
d3d12: Fix indexed triangle fan emulation.
2015-09-18 22:36:21 +02:00
Vincent Lejeune
0da893695e
d3d12: Fix buffer upload with a base vertex.
2015-09-18 22:36:20 +02:00
Vincent Lejeune
5f08cca849
d3d12: Do not init D2DStruct if uneeded
2015-09-18 22:36:19 +02:00
Vincent Lejeune
72e5578595
d3d12: Get rid of extra garbage collection off
2015-09-18 22:36:19 +02:00
Vincent Lejeune
bf04758285
d3d12: Submit command list every draw call in debug mode
2015-09-18 22:36:18 +02:00
Vincent Lejeune
7d15cc0dfd
d3d12: Build shader in debug mode if debug output is enabled.
2015-09-18 22:36:18 +02:00
Raul Tambre
8204737efa
Implement GetLicenseArea, category improvements
...
Also fixed newlines, CellSailEvent, fixed CellMusic changes, fixed
console_write, fixed L10n changes and removed the login dialog for now,
until a more proper implementation.
2015-09-13 10:26:01 +03:00
Raul Tambre
ea376e7751
Implement console_write and GetHomeDataExportPath
2015-09-12 14:11:26 +03:00
Raul Tambre
cd7fbae583
Implement NetStartDialogLoadAsync, L10N additions
...
Also improved cellPadPeriphGetInfo
2015-09-10 17:13:31 +03:00
Raul Tambre
4666f190db
Fix BRI instruction, fixes #1165
2015-09-07 20:14:00 +03:00
Vincent Lejeune
e0aa74d380
D3D12: Add CELL_GCM_ZERO case to comparaison function.
2015-08-26 18:45:57 +02:00
Vincent Lejeune
095c8fa19b
RSX/D3D12: Improve shader lookup performance
2015-08-26 18:45:57 +02:00
Vincent Lejeune
9c24bb9d75
RSX/D3D12/GL/Null: Notify backend of program/state change
2015-08-26 18:45:57 +02:00
Nekotekina
5e14310071
noexcept usage fixed
...
thread_t renamed to named_thread_t
2015-08-24 21:22:48 +03:00
Nekotekina
ce494f8847
fmt::by_value, fmt::Format removed
2015-08-24 21:22:42 +03:00
Nekotekina
73b108765e
fs:: const renaming, fs::g_tls_error stub
2015-08-24 21:22:39 +03:00
Nekotekina
c7ee8cadde
cellFont, cellFs, cellGcmSys funcs added, minor cleanup
2015-08-24 21:22:14 +03:00
Vincent Lejeune
1ee749a9a8
d3d12: Fix blend alpha mode
...
Follow GL spec.
2015-08-17 22:12:58 +02:00
Vincent Lejeune
592543c47f
d3d12: Fix wrong index being used for sampler descriptor heap
...
Fix a crash in Disgaea 3 with debug output enabled.
2015-08-17 00:12:30 +02:00
Vincent Lejeune
be1511bd7a
d3d12: Add a d2d overlay to display debug text
2015-08-16 23:00:55 +02:00
Vincent Lejeune
fcd579a7b5
d3d12: Record draw call count and duration instead of vertex/texture upload
2015-08-16 23:00:46 +02:00
Vincent Lejeune
80c25b8ced
d3d12: Reuse the same command list until flip or semaphoreRelease
2015-08-16 23:00:27 +02:00
Vincent Lejeune
a93a81997f
d3d12: Remove preventive "waitForCompletion" after a flip.
2015-08-16 23:45:56 +03:00
Vincent Lejeune
06532e3263
d3d12: Do not invalidate surface texture if they are not set.
...
Fix hang with depth read texture and color buffer enabled.
2015-08-16 23:45:52 +03:00
Vincent Lejeune
63a54dd70d
d3d12: Rewrite per frame resource cleaning function.
2015-08-16 23:45:51 +03:00
Vincent Lejeune
c2430d3af1
d3d12: Use ComPtr for some others member.
2015-08-16 23:45:49 +03:00
Vincent Lejeune
b54adebfc7
d3d12: Do not recreate fence/event each frame.
2015-08-16 23:45:47 +03:00
Nekotekina
405d7cb70c
Revert "RSX: Fix NV3089"
...
This reverts commit a86e44deb4 .
Reasons: it's broken and not strictly related with d3d12 PR.
2015-08-16 18:37:20 +03:00
Vincent Lejeune
3b0afe92e3
d3d12: Add a dummy D3D12Lib struct that load/unload d3d12.dll
...
It allows to unload the lib after everything else has been released, it
fixes a crash when leaving an app with d3d12 backend.
2015-08-14 23:39:38 +02:00
Vincent Lejeune
09cc127dd9
d3d12: Use ComPtr<> instead of manually releasing some structures
2015-08-14 23:39:37 +02:00
Vincent Lejeune
9cb88b3a8d
d3d12: Use ThrowIfFailed instead of check to be inline with DX12 Samples
2015-08-14 23:39:37 +02:00
Vincent Lejeune
befe93784f
d3d12: Do not create/submit an extra command list for texture upload/rtt state change
2015-08-14 21:23:30 +02:00
Vincent Lejeune
4185fcb6cd
d3d12: Do not output scale if there is no rtt available
...
Fix crash in Disgaea 3
2015-08-14 17:03:16 +02:00
Vincent Lejeune
abee3539b8
d3d12: Fix non dx12 build config
2015-08-14 00:29:22 +02:00
Vincent Lejeune
9cb7339067
d3d12: Do not detach garbage collection thread
...
Thanks Neko for the tips.
2015-08-12 22:59:15 +02:00
Vincent Lejeune
cf1c86bb2f
d3d12: Signal thread termination request + use a producer/consumer pattern closer to other ones in rpcs3.
2015-08-12 00:28:38 +02:00
Vincent Lejeune
3d486a8ba9
d3d12: Reset gfxHandler in dtor
2015-08-12 00:28:36 +02:00
Vincent Lejeune
11980346c9
Clean an useless added line
2015-08-12 00:28:36 +02:00
vlj
6a408301d7
d3d12: Another fix
2015-08-12 00:28:35 +02:00
vlj
9b10895c38
d3d12: Fix build with latest master
2015-08-12 00:28:35 +02:00
vlj
6fcd0e0421
d3d12: Add semaphorePGRAPHTextureRead
2015-08-12 00:28:34 +02:00
vlj
37cc5e5c11
d3d12: Fix D3D12GSRender member name
2015-08-12 00:28:34 +02:00
vlj
38a809b483
d3d12: Use another sampler heap when using more than 2048 samplers
2015-08-12 00:28:34 +02:00
vlj
d2edeafffe
d3d12: Remove extra ,
2015-08-12 00:28:33 +02:00
vlj
b839b86895
d3d12: Fix color for target_none
2015-08-12 00:28:33 +02:00
vlj
af181395fc
d3d12: Fix warning
2015-08-12 00:28:32 +02:00
vlj
265331117e
d3d12: Support targetless flip
...
Fix PS3Doom
2015-08-12 00:28:32 +02:00
vlj
725b0c606d
d3d12: Add some doc
2015-08-12 00:28:31 +02:00
vlj
0e6cd8cd0e
d3d12: Fix warnings
2015-08-12 00:28:31 +02:00
vlj
ff219c6035
d3d12: Factorise sampler desc creation in a separate function
2015-08-12 00:28:30 +02:00
vlj
612d169b78
d3d12: Add some comments
2015-08-12 00:28:30 +02:00
vlj
8801abb93a
d3d12: Refactor index management
...
Separates it from vertex management and move all the logic (forced
indexing, index count calculation...) outside of GSRender.
2015-08-12 00:28:29 +02:00
vlj
1f3fbe91e2
d3d12: Don't call GetAddress if context_dma is not set
2015-08-12 00:28:29 +02:00
vlj
91809c09d4
d3d12: use memcpy instead of streamToBuffer for alpha settings
...
streamToBuffer doesn't work well for data < 128 bits
2015-08-12 00:28:28 +02:00
vlj
bf394d4f56
d3d12: Support triangle fan
...
Fix missing character members in the guided fate paradox
2015-08-12 00:28:28 +02:00
vlj
6f0c74cf76
d3d12: Fix crash with write color/depth buffer enabled
2015-08-12 00:28:27 +02:00
vlj
428d66598d
d3d12: Move util shader creation in another file
2015-08-12 00:28:27 +02:00
vlj
2cd035d530
d3d12: Fix A1R5G5B5 endianness
...
Fix color in Retro city rampage
2015-08-12 00:28:27 +02:00
vlj
cb0ebad210
d3d12: Fix binding of tex/sampler
2015-08-12 00:28:26 +02:00
vlj
3cc3974466
d3d12: Fix m_ctrl not being properly passed to fragement decompiler
...
Fix Retro City Rampage
2015-08-12 00:28:26 +02:00
vlj
45b7da6666
d3d12: Mipmap offset is 512byte aligned
...
Fix retro city rampage crash at startup
2015-08-12 00:28:25 +02:00
vlj
6cb00e681b
d3d12: support swizzled CELL_GCM_TEXTURE_A4R4G4B4
...
Fix terraria menu
2015-08-12 00:28:25 +02:00
vlj
40a3b5c918
d3d12: Mark semaphore location as volatile
2015-08-12 00:28:24 +02:00
vlj
a519aa8350
d3d12: Add a (ugly) fix because of some race condition somewhere
2015-08-12 00:28:24 +02:00
vlj
8cf6255d5d
d3d12: Fix unneeeded vectors
2015-08-12 00:28:23 +02:00
vlj
fc65f181a7
d3d12: Fix a potential crash in GC thread
2015-08-12 00:28:23 +02:00
vlj
16fa3697db
d3d12: Use atomic for data heap
2015-08-12 00:28:22 +02:00
vlj
de55d64781
d3d12: Make canAlloc function const
2015-08-12 00:28:22 +02:00
vlj
fd269f3adc
d3d12: Fix alloc function
...
It may generate wrong result in very rare circumstance, although I never
experienced it.
2015-08-12 00:28:21 +02:00
vlj
3472f75ae0
d3d12: Fix uninitialized variables
2015-08-12 00:28:21 +02:00
vlj
d4b83bcf6f
d3d12: Try to factorise CPU/GPU descriptor handle gen
...
I'm still not satisfied with it but I didn't find another way to make it
compact and readable.
2015-08-12 00:28:20 +02:00
vlj
1c7bff4d36
d3d12: Use align instead of powerOf2Align
2015-08-12 00:28:20 +02:00
vlj
5e33d5535d
d3d12: Add a TODO notice at the beginning
2015-08-12 00:28:19 +02:00
vlj
141c7ef340
d3d12: Do not cache non buffer vertex attribute
...
Fix dice test
2015-08-12 00:28:19 +02:00
vlj
73aeda1507
d3d12: Use stream to buffer to upload vertex constants
2015-08-12 00:28:19 +02:00
vlj
2c802735bd
d3d12: Fix crash + use ref instead of copying in some for loops
2015-08-12 00:28:18 +02:00
vlj
865445e29b
d3d12: Remove m_textureData heap since it wasn't used
...
Free 512 mb
2015-08-12 00:28:18 +02:00
vlj
8f31211557
d3d12: Avoid copying 8k of constant data per draw call
2015-08-12 00:28:17 +02:00
vlj
d88d078f4a
d3d12: Fix left over commented code
2015-08-12 00:28:17 +02:00
vlj
5102241ac2
d3d12: Compute texture size in host mem
2015-08-12 00:28:16 +02:00
vlj
4ee66a2680
d3d12: Implement intraframe vertex caching
2015-08-12 00:28:16 +02:00
vlj
294d649012
d3d12: Fix a type warning
2015-08-12 00:28:15 +02:00
vlj
d29b82566e
d3d12: Fix memleak
2015-08-12 00:28:15 +02:00
vlj
c6a5e905bc
d3d12: enable texture caching
...
Bring a little more perf in arkedo 2
2015-08-12 00:28:14 +02:00
vlj
8cc9642b96
Completly unclean way to track texture modification between frames
2015-08-12 00:28:14 +02:00
vlj
03a84cb208
d3d12: Measure time spent uploading texture and vertex
2015-08-12 00:28:13 +02:00
vlj
3f495689c0
d3d12: Ignore texture with 0 width/height
...
Fix crash in voodoo chronicles.
2015-08-12 00:28:13 +02:00
vlj
ad3e50f90f
d3d12: Do not guess texture size but use actual value
2015-08-12 00:28:12 +02:00
vlj
628acbf0b4
d3d12: Do not reserve a lot more than necessary.
2015-08-12 00:28:12 +02:00
vlj
dbcddcf5e2
d3d12: Clean up texture upload code
...
Should be easier to read code (and spot bugs).
Fix crash with mipmap and DXTCn texture format.
2015-08-12 00:28:11 +02:00
vlj
eda3c9084e
d3d12: Fix mipmap data
2015-08-12 00:28:11 +02:00
vlj
178d0e0e85
d3d12: Try implement mipmap
...
The mipmap level below 0 are currently wrong, find out why
2015-08-12 00:28:11 +02:00
vlj
d23cf861f1
d3d12: Factorize ring buffer like code to depth/color buffer migration
2015-08-12 00:28:10 +02:00
vlj
dca9ae6ab5
d3d12: Factorize cleaning function for heaps
2015-08-12 00:28:10 +02:00
vlj
aa66ddcd86
d3d12: Add some code documentation + rename some functions
2015-08-12 00:28:09 +02:00
vlj
f2d39d0e82
d3d12: Use fixed width/height scale and use surface_clip info for scaleOffset matrix
...
Thanks to raven02 for the patch.
2015-08-12 00:28:09 +02:00
vlj
f59bc86ac5
d3d12: Fix scaling for terraria/Voodoo chronicles
...
It break render_to_target test but it looks like an issue with
scale/offset buffer rather than viewport/scissor
2015-08-12 00:28:08 +02:00
vlj
09ccd7e436
d3d12: Fix crash with W16Z16Y16X16 texture format
2015-08-12 00:28:08 +02:00
vlj
2310ba137f
d3d12: Fix crash with rescaling pass
2015-08-12 00:28:07 +02:00
vlj
9fdb6f0dad
d3d12: Fix color of scaling output
2015-08-12 00:28:07 +02:00
vlj
281f8be76f
d3d12: Enable scaling pass
...
The output is black and white, need to find out why.
2015-08-12 00:28:06 +02:00
vlj
224bae383c
d3d12: Add some code that will scale final render target
2015-08-12 00:28:06 +02:00
vlj
f55bb7165c
d3d12: Load dll at runtime
2015-08-12 00:28:05 +02:00
vlj
006d989304
d3d12: Uncomment code that shouldn't have been commented out
2015-08-12 00:28:05 +02:00
raven02
00c975b469
d3d12: use gcm buffer width and height for copy texture region
...
It fixes crash in Voodoo Chronicles and Terraria
2015-08-12 00:28:04 +02:00
vlj
e36c4f75e0
d3d12; Fix swizzle for B8 texture format
...
Fix menu in guided fate paradox for WARP
2015-08-12 00:28:04 +02:00
vlj
41577b5018
d3d12: Fix some warnings
2015-08-12 00:28:03 +02:00
vlj
17e169e652
d3d12: Fix crash at exit + tweak heap sizes to make dice test working
2015-08-12 00:28:03 +02:00
vlj
75a52219e0
d3d12: Rewind constant buffers get value
2015-08-12 00:28:03 +02:00
vlj
c53828787a
d3d12: Emit an error if waiting for too long for semaphore
2015-08-12 00:28:02 +02:00
vlj
d2c13bc4c1
d3d12: Use a commited resource for constant buffer
...
Since we rarely use more than 1k of constant data we waste space due to
alignment requirement with heap so use a commited resource instead.
2015-08-12 00:28:02 +02:00
vlj
2f54482592
d3d12: Make depth test optionnal and use (0,0,0,0) when texture unit is disabled
2015-08-12 00:28:01 +02:00
raven02
482a371bb0
d3d12: set max_depth_value based on depth format
2015-08-12 00:26:54 +02:00
raven02
da923f8a3d
d3d12: declare bufferSize for allocation
2015-08-12 00:26:53 +02:00
raven02
cf27d4c2ca
d3d12: Fix pitch in COMPRESSED_DXT23/DXT45
...
Make pm_zcull.ppu.elf renders correctly.
2015-08-12 00:26:53 +02:00
vlj
24c23dc5f6
d3d12: Use dummy texture to fill empty texture slot
...
vertex attribute test has a shader that reads a texture, but rpcs3
doesn't provide the texture ; this makes WARP crash.
2015-08-12 00:26:52 +02:00
vlj
cfde5698c7
d3d12: Fix swizzling for D8R8G8B8
...
Fix human.ppu.elf demo
2015-08-12 00:26:52 +02:00
vlj
70b537c8c2
d3d12: Implement discard
...
Should make alpha test kill test almost working as it should.
2015-08-12 00:26:51 +02:00
vlj
dc1a57e71c
d3d12: Fix color masking
...
Wasn't using the correct PSO state variable
2015-08-12 00:26:51 +02:00
raven02
724159c8b4
d3d12: warning log fix
2015-08-12 00:26:50 +02:00
raven02
a86e44deb4
RSX: Fix NV3089
...
Make convert_swizzle.elf works
2015-08-12 00:26:50 +02:00
vlj
93e20c0853
d3d12: Fix index count
2015-08-12 00:26:49 +02:00
vlj
8b631d486c
d3d12: Fix build
2015-08-12 00:26:49 +02:00
raven02
48e6db3a2f
d3d12: use CELL_GCM suffix for filter
2015-08-12 00:26:48 +02:00
vlj
224503d2dc
d3d12: Move program related code out of D3D12GSRender and some get* format functions
2015-08-12 00:26:48 +02:00
vlj
ad55cced13
d3d12: Fix vertex buffer sometimes incomplete.
2015-08-12 00:26:47 +02:00
vlj
e55949dbfa
d3d12: Use h0 in fragment decompiler when there is no r0
...
Partially fix alpha kill test.
2015-08-12 00:26:47 +02:00
vlj
8669dac5e7
d3d12: Implement sampler filters properly
...
Fix menu in the guided fate paradox
2015-08-12 00:26:46 +02:00
vlj
2d0dbf4949
d3d12: Async semaphore leads to deadlock, make it sync, but do resource garbage collection async
2015-08-12 00:26:46 +02:00
vlj
10b92d45d1
d3d12: Use RSXThread width height for viewport
...
Thanks to raven02 for finding this, it fixes render to texture test
2015-08-12 00:26:45 +02:00
vlj
4966ab565a
d3d12; Clean resource sooner and fix crash with VS debugger.
2015-08-12 00:26:45 +02:00
raven02
1837f40ed4
d3d12: Factorize common use functions among frag and vertex decompiler
2015-08-12 00:26:44 +02:00
vlj
e38bf8d51f
d3d12: Fix rgba16float endianness for textures
2015-08-12 00:26:44 +02:00
vlj
ff9f348ec2
d3d12: Use finer pitch when downloading rtt
2015-08-12 00:26:43 +02:00
vlj
c2d3c857b6
d3d12: Handle w16Z16Y16X16 rtt format
...
It doesnt fix completly render_to_texture test but it helps.
2015-08-12 00:26:43 +02:00
vlj
b8ba902657
d3d12: Fix rtt size (and crash in render_to_texture test)
2015-08-12 00:26:42 +02:00
vlj
33daa81e6f
d3d12: Fix some src pitch
2015-08-12 00:26:42 +02:00
raven02
68d3f6f536
d3d12: minor cleanup
2015-08-12 00:26:41 +02:00
raven02
4ef66e6901
d3d12: Add blend for MRT
2015-08-12 00:26:41 +02:00
raven02
e72d098ea1
d3d12: use CELL_GCM suffix
2015-08-12 00:26:40 +02:00
vlj
8474cd8064
d3d12: Fix pitch for compressed textures
2015-08-12 00:26:40 +02:00
vlj
27e56b6199
d3d12: Do not set mask if not requested
2015-08-12 00:26:39 +02:00
vlj
bdeb08e045
d3d12: Add color masking
2015-08-12 00:26:39 +02:00
vlj
acb8f82f84
d3d12: Add front/back face culling setting
2015-08-12 00:26:38 +02:00
vlj
b465992178
d3d12: Fix stencil op
...
Thanks to raven02 for noticing them !
2015-08-12 00:26:38 +02:00
vlj
c73d19161b
d3d12: Disable depth/color buffer write if not requested
...
Doesnt really increase performance...
2015-08-12 00:26:37 +02:00
vlj
d564c25241
d3d12: Use real depth function too
2015-08-12 00:26:37 +02:00
vlj
b2ad49bac8
d3d12: Check blend and depth stencil state when evaluating pso equality
2015-08-12 00:26:36 +02:00
vlj
5f46b32616
d3d12: Use instancing to pass constant vertex attribute
...
Maybe a bit hackish but it works.
2015-08-12 00:26:36 +02:00
vlj
64a555caca
d3d12: Write data to single vertex attrib
...
stencil reflect has some color but it's still broken.
2015-08-12 00:26:35 +02:00
vlj
02f15810ee
d3d12: Implement stencil states
...
Unfortunatly it doesnt solve stencil reflect test atm
2015-08-12 00:26:35 +02:00
vlj
e3b73f9ea0
d3d12: Fix vertex error in stencil reflect
2015-08-12 00:26:34 +02:00
vlj
381260a493
d3d12: Check IALayout equality in pipeline state
2015-08-12 00:26:34 +02:00
vlj
e4435a9308
DPH disappeared when merging, need to merge commit with the initial one
2015-08-12 00:26:34 +02:00
vlj
22e67db0f2
d3d12: Add some others texture format
2015-08-12 00:26:33 +02:00
vlj
c3e19f34fa
gl: sampler2d are constants
2015-08-12 00:26:33 +02:00
vlj
ca90c05b0a
gl : refix
2015-08-12 00:26:32 +02:00
vlj
744b56b12d
gl: Fix texture unswizzling
...
Fix multi texture test
2015-08-12 00:26:32 +02:00
vlj
694d4e01a0
d3d12: Use openMP for vertex buffer mapping and factorize function
2015-08-12 00:26:31 +02:00
vlj
459ab17d74
d3d12: Use openMP to upload texture
...
Does not really increase performance so far
2015-08-12 00:26:31 +02:00
vlj
cfe058dc82
d3d12: Factorize texture upload code
2015-08-12 00:26:30 +02:00
raven02
ce857ab1da
RSX: DP2A for fragment decompiler
2015-08-12 00:26:30 +02:00
vlj
caf863be4d
d3d12: Fix crash at exit
2015-08-12 00:26:29 +02:00
vlj
5882f9defb
d3d12: Do not use texture pitch but compute it ourself
...
Fix sonic cd splash screen
2015-08-12 00:26:29 +02:00
vlj
f31282623a
d3d12: Fix texture unswizzling
2015-08-12 00:26:28 +02:00
raven02
25c09c5088
d3d12: Add Blend Op
2015-08-12 00:26:28 +02:00
vlj
a2b8d3a885
d3d12: Fix memleak
2015-08-12 00:26:27 +02:00
raven02
76d52b4bb3
d3d12: Implement A4R4G4B4 texture format with byte swapped
...
Make the guided fate paradox works
2015-08-12 00:26:27 +02:00
vlj
593b9a494d
d3d12: Double texture storage size
2015-08-12 00:26:27 +02:00
vlj
d886fd55d3
d3d12: Fix for size calculation
2015-08-12 00:26:26 +02:00
vlj
a751a06d01
d3d12: Try not to overcommit texture memory
2015-08-12 00:26:26 +02:00
vlj
a5fb8c95f4
d3d12: Fix interframe sync
2015-08-12 00:26:25 +02:00
vlj
ac352cd083
d3d12: Use custom loadvertex like call
2015-08-12 00:26:25 +02:00
vlj
b63c77ca7d
d3d12: Swap current/non current right after present has been called
2015-08-12 00:26:24 +02:00
vlj
9e2dfcaba3
d3d12: fix memleak
2015-08-12 00:26:24 +02:00
vlj
7db3599648
d3d12: Ping pong between data to avoid gpu stall as much as possible
2015-08-12 00:26:23 +02:00
vlj
461bf12c4f
d3d12: Cleaning
2015-08-12 00:26:23 +02:00
vlj
51d287d9b0
d3d12: Take alignment into account in streamBuffer
...
And use it for texture upload
2015-08-12 00:26:22 +02:00
vlj
878a116c4a
Rebasing didn't went quite right...Fixes
2015-08-12 00:26:22 +02:00
vlj
3a6abe1656
d3d12: fix crash when inferring texture size
2015-08-12 00:26:21 +02:00
vlj
9748007cd3
d3d12: Use ring buffer for textures too
...
It looks like the texture size calculation is wrong, it can lead to
crash
2015-08-12 00:26:21 +02:00
vlj
6bb5dd2125
d3d12: Use ring like buffer for vertex index data
2015-08-12 00:26:20 +02:00
vlj
f721f2cbaa
d3d12: Use ring like heap for vertex and fragment constants too
2015-08-12 00:26:20 +02:00
vlj
59aca7566e
d3d12: Some fixes to avoid running out of constant spaces
2015-08-12 00:26:19 +02:00
vlj
e0cff6b0b4
d3d12: Start using a ring-like buffer for constants
2015-08-12 00:26:19 +02:00
vlj
c1abf80b40
d3d12: Fix r5g6b5 only using half texture
2015-08-12 00:26:19 +02:00
vlj
5ca02a5053
d3d12: Fix R5G6B5 being byte swapped
2015-08-12 00:26:18 +02:00
vlj
d8d72c4327
d3d12: Implement R5G6B5 texture format
...
Make sonic works, but with wrong color
2015-08-12 00:26:18 +02:00
vlj
25b10c5e3e
d3d12: Consume less descriptor slot if not required
2015-08-12 00:26:17 +02:00
vlj
043adab2ce
d3d12: Fix fragment constant filling
...
The command buffer does not necessarily set them in order...
2015-08-12 00:26:16 +02:00
vlj
1c803e725b
d3d12: Do not overwrite hlsl file
2015-08-12 00:26:16 +02:00
vlj
0b435afd1d
d3d12: Fix some texture format swizzles.
2015-08-12 00:26:15 +02:00
vlj
3aafb60629
d3d12: Fix offset in scale offset
...
Depth Buffer should be correctly positionned in depth_read test
2015-08-12 00:26:15 +02:00
raven02
0be60890e7
d3d12: minor fixes
2015-08-12 00:26:14 +02:00
vlj
fdf24545af
d3d12: Raise texture upload heap to make multi texture work
...
The result is not in line with PS3 real output though
2015-08-12 00:26:14 +02:00
vlj
e454f59f97
d3d12: Fix depth buffer not being transitionned to generic read
2015-08-12 00:26:13 +02:00
vlj
aac93b9063
d3d12: Clean code + fix warnings
2015-08-12 00:26:13 +02:00
vlj
001dc7cf57
d3d12: Do not copy fbo, just use new one
2015-08-12 00:26:12 +02:00
vlj
5a57564b0c
d3d12: Forgot a hunk
2015-08-12 00:26:12 +02:00
vlj
01ac9f02d2
d3d12: Use placed resource for depth conversion result
2015-08-12 00:26:11 +02:00
vlj
2636fb457e
d3d12: Use placed resource for mrt readback
...
Should be slightly faster (no allocation)
2015-08-12 00:26:11 +02:00
raven02
28c125618a
d3d12 : add few more compressed format
2015-08-12 00:26:10 +02:00
raven02
046e522851
d3d12: Add DXT23 & DXT45
2015-08-12 00:26:10 +02:00
vlj
6877e5e3ba
d3d12: Start using heap for depth buffer readback
2015-08-12 00:26:09 +02:00
vlj
90fb4396fe
d3d12; Add a texture cache
2015-08-12 00:26:08 +02:00
raven02
d8f76f5aee
d3d12: Add LogicOp
2015-08-12 00:26:08 +02:00
vlj
f382ba0319
d3d12: Enable multiple mrt read
2015-08-12 00:26:07 +02:00
vlj
8e9cdc5fea
d3d12: Fix memleak
2015-08-12 00:26:07 +02:00
vlj
da328c078a
d3d12: Fix cube_mrt.ppu.elf
...
It should display a (single) blue cube
2015-08-12 00:26:06 +02:00
vlj
cef58da879
d3d12: Fix non mrt samples
2015-08-12 00:26:06 +02:00
vlj
595392428d
d3d12: First attempt at read color buffer using dma address change
...
If address of m_context_dma_color_a change, copy the RTT in a texture
that can be used for drawing.
Currently a bit broken, the rtt is used for others textures too...
2015-08-12 00:26:05 +02:00
vlj
3e11598941
d3d12: Fix increment size for sampler and row pitch for swizzled textures
2015-08-12 00:26:05 +02:00
vlj
262d3d0755
d3d12: Fix copyToCellRamAndRelease copy size
2015-08-12 00:26:04 +02:00
vlj
906146d8f6
d3d12: Lower memory storage
2015-08-12 00:26:04 +02:00
vlj
f12cb9b519
d3d12: Send RTTs to cell memory when a semaphore is released
2015-08-12 00:26:03 +02:00
vlj
53ac34db35
d3d12: Fix a warning
2015-08-12 00:26:03 +02:00
vlj
74dab18174
d3d12: Use graphic queue to download depth buffer
...
For now go to the easiest solution and improve later
2015-08-12 00:26:02 +02:00
vlj
af69803ee0
d3d12: Factorize resource state change
2015-08-12 00:26:01 +02:00
vlj
3a029efbd3
d3d12: Add D8R8G8B8 format to texture
...
Should fix human.ppu.elf
2015-08-12 00:26:01 +02:00
vlj
68a62f897d
d3d12: Fix texture loading for fw_fog.ppu.elf
...
Color are wrong though
2015-08-12 00:26:00 +02:00
vlj
7b571aab70
d3d12: Start supporting dxtc1 format
2015-08-12 00:26:00 +02:00
vlj
b5a7637b49
d3d12: Implement texture swizzling and untiling
2015-08-12 00:25:59 +02:00