gdkchan and GitHub
42c75dbb8f
Add support for BC1/2/3 decompression (for 3D textures) ( #2987 )
...
* Add support for BC1/2/3 decompression (for 3D textures)
* Optimize and clean up
* Unsafe not needed here
* Fix alpha value interpolation when a0 <= a1
2022-01-22 19:23:00 +01:00
gdkchan and GitHub
f0824fde9f
Add host CPU memory barriers for DMB/DSB and ordered load/store ( #3015 )
...
* Add host CPU memory barriers for DMB/DSB and ordered load/store
* PPTC version bump
* Revert to old barrier order
2022-01-21 12:47:34 -03:00
gdkchan and GitHub
7e967d796c
Stop using glTransformFeedbackVaryings and use explicit layout on the shader ( #3012 )
...
* Stop using glTransformFeedbackVarying and use explicit layout on the shader
* This is no longer needed
* Shader cache version bump
* Fix gl_PerVertex output for tessellation control shaders
2022-01-21 12:35:21 -03:00
gdkchan and GitHub
0e59573f2b
Add capability for BGRA formats ( #3011 )
2022-01-20 08:37:21 -03:00
gdkchan and GitHub
fb853f13e9
Scale scissor used for clears ( #3002 )
2022-01-16 20:23:00 -03:00
gdkchan and GitHub
bd215e447d
Fix return type mismatch on 32-bit titles ( #3000 )
2022-01-16 08:39:43 -03:00
gdkchan and GitHub
6e0799580f
Fix render target clear when sizes mismatch ( #2994 )
2022-01-11 20:15:17 +01:00
gdkchan and GitHub
7f6b3d234a
Implement IMUL, PCNT and CONT shader instructions, fix FFMA32I and HFMA32I ( #2972 )
...
* Implement IMUL shader instruction
* Implement PCNT/CONT instruction and fix FFMA32I
* Add HFMA232I to the table
* Shader cache version bump
* No Rc on Ffma32i
2022-01-10 12:08:00 -03:00
gdkchan and GitHub
952c6e4d45
Fix sampled multisample image size ( #2984 )
2022-01-10 08:45:25 +01:00
gdkchan and GitHub
4864648e72
Return error on DNS resolution when guest internet access is disabled ( #2983 )
...
* Return error on DNS resolution when guest internet access is disabled
* Log DNS lookup calls
2022-01-08 20:18:09 -03:00
gdkchan and GitHub
15131d4350
Force crop when presentation cached texture size mismatches ( #2957 )
2021-12-31 12:00:42 -03:00
gdkchan and GitHub
c05c8e09d4
Add support for the R4G4 texture format ( #2956 )
2021-12-30 17:10:54 +01:00
gdkchan and GitHub
1485780d90
Fix A1B5G5R5 format for good ( #2955 )
2021-12-30 14:00:34 +01:00
gdkchan and GitHub
8544b1445b
Improve SocketOption handling ( #2946 )
2021-12-29 15:04:38 +01:00
gdkchan and GitHub
ef39b2ebdd
Flip scissor box when the YNegate bit is set ( #2941 )
...
* Flip scissor box when the YNegate bit is set
* Flip scissor based on screen scissor state, account for negative scissor Y
* No need for abs when we already know the value is negative
2021-12-28 08:37:23 -03:00
gdkchan and GitHub
6dacc4c577
Fix GetHostByNameRequestWithOptions and GetHostByAddrRequestWithOptions ( #2943 )
2021-12-28 08:22:58 -03:00
gdkchan and GitHub
f65d01b5d3
Use minimum stream sample count on SDL2 audio backend ( #2948 )
2021-12-27 18:25:21 -03:00
gdkchan and GitHub
ac57dd5d75
Fix wrong title language ( #2933 )
...
* Fix wrong title language
* Sort
2021-12-27 18:10:49 -03:00
gdkchan and GitHub
a87f7f2029
Fix DMA copy fast path line size when xCount < stride ( #2942 )
2021-12-26 13:05:26 -03:00
gdkchan and GitHub
451673ada5
Fix I2M texture copies when line length is not a multiple of 4 ( #2938 )
...
* Fix I2M texture copies when line length is not a multiple of 4
* Do not copy padding bytes for 1D copies
* Nit
2021-12-26 12:39:07 -03:00
gdkchan and GitHub
0b1185284c
Fix GetAddrInfoWithOptions and some sockets issues ( #2936 )
...
* Fix GetAddrInfoWithOptions and some sockets issues
* Was not supposed to remove this log
2021-12-26 15:17:13 +01:00
gdkchan and GitHub
c0056546e7
Fix bug causing an audio buffer to be enqueued more than once ( #2940 )
2021-12-26 14:48:18 +01:00
gdkchan and GitHub
a438a4bc16
Remove PortRemoteClosed warning ( #2928 )
2021-12-23 14:43:30 -03:00
gdkchan and GitHub
e7c2dc8ec3
Fix for texture pool not being updated when it should + buffer texture related fixes ( #2911 )
2021-12-19 11:50:44 -03:00
gdkchan and GitHub
e24949ca2c
Implement CSDB instruction ( #2927 )
2021-12-19 11:19:05 -03:00
gdkchan and GitHub
119a3a1887
Fix SUATOM and other texture shader instructions with RZ dest ( #2885 )
...
* Fix SUATOM and other texture shader instructions with RZ dest
* Shader cache version bump
2021-12-08 18:36:09 -03:00
gdkchan and GitHub
650cc41c02
Implement remaining shader double-precision instructions ( #2845 )
...
* Implement remaining shader double-precision instructions
* Shader cache version bump
2021-12-08 17:54:12 -03:00
gdkchan and GitHub
acc0b0f313
Fix FLO.SH shader instruction with a input of 0 ( #2876 )
...
* Fix FLO.SH shader instruction with a input of 0
* Shader cache version bump
2021-12-05 13:25:05 +01:00
gdkchan and GitHub
30b7aaefca
Better depth range detection ( #2754 )
...
* Better depth range detection
* PR feedback
* Move depth mode set out of the loop and to a separate method
2021-11-21 10:25:03 -03:00
gdkchan and GitHub
b9d83cc97e
Fix shader integer from/to double conversion ( #2831 )
2021-11-14 21:37:07 -03:00
gdkchan and GitHub
611bec6e44
Implement DrawTexture functionality ( #2747 )
...
* Implement DrawTexture functionality
* Non-NVIDIA support
* Disable some features that should not affect draw texture (slow path)
* Remove space from shader source
* Match 2D engine names
* Fix resolution scale and add missing XML docs
* Disable transform feedback for draw texture fallback
2021-11-10 15:37:49 -03:00
gdkchan and GitHub
911ea38e93
Support shader gl_Color, gl_SecondaryColor and gl_TexCoord built-ins ( #2817 )
...
* Support shader gl_Color, gl_SecondaryColor and gl_TexCoord built-ins
* Shader cache version bump
* Fix back color value on fragment shader
* Disable IPA multiplication for fixed function attributes and back color selection
2021-11-08 13:18:46 -03:00
gdkchan and GitHub
3dee712164
Fix bindless/global memory elimination with inverted predicates ( #2826 )
...
* Fix bindless/global memory elimination with inverted predicates
* Shader cache version bump
2021-11-08 12:57:28 -03:00
gdkchan and GitHub
b7a1544e8b
Fix InvocationInfo on geometry shader and bindless default integer const ( #2822 )
...
* Fix InvocationInfo on geometry shader and bindless default integer const
* Shader cache version bump
* Consistency for the default value
2021-11-08 11:39:30 -03:00
gdkchan and GitHub
81e9b86cdb
Ensure syncpoints are released and event handles closed on channel close ( #2812 )
2021-11-04 20:27:21 -03:00
gdkchan and GitHub
f78bcb8048
Clamp number of mipmap levels to avoid API errors due to invalid textures ( #2808 )
2021-11-03 20:58:24 -03:00
gdkchan and GitHub
e48530e9d9
When waiting on CPU, do not return a time out error from EventWait ( #2780 )
...
* When waiting on CPU, do not return a time out error from EventWait
* And while I'm at it...
2021-11-01 19:10:02 -03:00
gdkchan and GitHub
99445dd0a6
Add support for fragment shader interlock ( #2768 )
...
* Support coherent images
* Add support for fragment shader interlock
* Change to tree based match approach
* Refactor + check for branch targets and external registers
* Make detection more robust
* Use Intel fragment shader ordering if interlock is not available, use nothing if both are not available
* Remove unused field
2021-10-28 19:53:12 -03:00
gdkchan and GitHub
a7a40a77f2
Add support for the brazilian portuguese language code ( #2792 )
...
* Add support for the brazilian portuguese language code
* Fix error applet message
2021-10-28 23:06:45 +02:00
gdkchan and GitHub
04dfb86fde
Preserve image types for shader bindless surface instructions (.D variants) ( #2779 )
...
* Preserve image types for SULD/SUST .D variants
* Make format unknown for surface atomic if bindless and not sized
2021-10-24 19:40:20 -03:00
gdkchan and GitHub
0d174cbd45
EventWait should not signal the event when it returns Success ( #2739 )
...
* Fix race when EventWait is called and a wait is done on the CPU
* This is useless now
* Fix EventSignal
* Ensure the signal belongs to the current fence, to avoid stale signals
2021-10-19 17:25:32 -03:00
gdkchan and GitHub
63f1663fa9
Fix shader 8-bit and 16-bit STS/STG ( #2741 )
...
* Fix 8 and 16-bit STG
* Fix 8 and 16-bit STS
* Shader cache version bump
2021-10-18 20:24:15 -03:00
gdkchan and GitHub
d512ce122c
Initial tessellation shader support ( #2534 )
...
* Initial tessellation shader support
* Nits
* Re-arrange built-in table
* This is not needed anymore
* PR feedback
2021-10-18 18:38:04 -03:00
gdkchan and GitHub
7603dbe3c8
Add missing U8/S8 types from shader I2I instruction ( #2740 )
...
* Add missing U8/S8 types from shader I2I instruction
* Better names
* Fix dstIsSignedInt
2021-10-17 17:48:36 -03:00
gdkchan and GitHub
25fd4ef10e
Extend bindless elimination to work with masked and shifted handles ( #2727 )
...
* Extent bindless elimination to work with masked handles
* Extend bindless elimination to catch shifted pattern, refactor handle packing/unpacking
2021-10-17 17:28:18 -03:00
gdkchan and GitHub
d05573bfd1
Implement SHF (funnel shift) shader instruction ( #2702 )
...
* Implement SHF shader instruction
* Shader cache version bump
* Better name
2021-10-17 17:02:20 -03:00
gdkchan and GitHub
464a92d8a7
Force index buffer update for games using Vulkan ( #2726 )
2021-10-12 23:46:42 +02:00
gdkchan and GitHub
a7109c767b
Rewrite shader decoding stage ( #2698 )
...
* Rewrite shader decoding stage
* Fix P2R constant buffer encoding
* Fix PSET/PSETP
* PR feedback
* Log unimplemented shader instructions
* Implement NOP
* Remove using
* PR feedback
2021-10-12 22:35:31 +02:00
gdkchan and GitHub
11b437eafc
Fix DisplayInfo struct ( #2708 )
2021-10-05 12:38:44 -03:00
gdkchan and GitHub
75f4b1ff2d
Relax sampler pool requirement ( #2703 )
2021-10-04 14:35:28 -03:00
gdkchan and GitHub
f7aaea4300
Unref frames before decoding with FFMPEG ( #2704 )
2021-10-04 14:12:24 -03:00
gdkchan and GitHub
fd7567a6b5
Only make render target 2D textures layered if needed ( #2646 )
...
* Only make render target 2D textures layered if needed
* Shader cache version bump
* Ensure topology is updated on channel swap
2021-09-29 01:55:12 +02:00
gdkchan and GitHub
f4f496cb48
NVDEC (H264): Use separate contexts per channel and decode frames in DTS order ( #2671 )
...
* Use separate NVDEC contexts per channel (for FFMPEG)
* Remove NVDEC -> VIC frame override hack
* Add missing bottom_field_pic_order_in_frame_present_flag
* Make FFMPEG logging static
* nit: Remove empty lines
* New FFMPEG decoding approach -- call h264_decode_frame directly, trim surface cache to reduce memory usage
* Fix case
* Silence warnings
* PR feedback
* Per-decoder rather than per-codec ownership of surfaces on the cache
2021-09-29 00:43:40 +02:00
gdkchan and GitHub
83bdafccda
Share scales array for graphics and compute ( #2653 )
2021-09-28 23:52:27 +02:00
gdkchan and GitHub
f08a280ade
Use shader subgroup extensions if shader ballot is not supported ( #2627 )
...
* Use shader subgroup extensions if shader ballot is not supported
* Shader cache version bump + cleanup
* The type is still required on the table
2021-09-19 14:38:39 +02:00
gdkchan and GitHub
ac4ec1a015
Account for negative strides on DMA copy ( #2623 )
...
* Account for negative strides on DMA copy
* Should account for non-zero Y
2021-09-11 22:54:18 +02:00
gdkchan and GitHub
016fc64b3d
Implement GetVaRegions on nvservices ( #2621 )
...
* Implement GetVaRegions on nvservices
* This would just result in 0
2021-09-11 22:39:02 +02:00
gdkchan and GitHub
a4089fc878
Report 1080p resolution when in docked mode ( #2618 )
2021-09-11 22:24:10 +02:00
gdkchan and GitHub
416dc8fde4
Fix out-of-bounds shader thread shuffle ( #2605 )
...
* Fix out-of-bounds shader thread shuffle
* Shader cache version bump
2021-08-30 14:02:40 -03:00
gdkchan and GitHub
82cefc8dd3
Handle indirect draw counts with non-zero draw starts properly ( #2593 )
2021-08-29 16:52:38 -03:00
gdkchan and GitHub
ee1038e542
Initial support for shader attribute indexing ( #2546 )
...
* Initial support for shader attribute indexing
* Support output indexing too, other improvements
* Fix order
* Address feedback
2021-08-27 01:44:47 +02:00
gdkchan and GitHub
5b8ceb9173
Swap BGR565 components by changing the format ( #2577 )
2021-08-26 22:47:21 +02:00
gdkchan and GitHub
c702943af3
Swap BGR components for 16-bit BGR texture formats ( #2567 )
2021-08-20 18:26:25 -03:00
gdkchan and GitHub
680d3ed198
Enable transform feedback buffer flush ( #2552 )
2021-08-17 14:09:27 -03:00
gdkchan and GitHub
eb181425b1
Fix size of cached compute shaders ( #2548 )
...
* Fix size of cached compute shaders
* Missed one
2021-08-12 15:59:24 -03:00
gdkchan and GitHub
8196086f7a
Revert "Calculate vertex buffer sizes from index buffer ( #1663 )" ( #2544 )
...
This reverts commit 10d649e6d3 .
2021-08-11 22:13:48 -03:00
gdkchan and GitHub
0ba4ade8f1
Ensure render scale is initialized to 1 on the backend ( #2543 )
2021-08-11 19:44:41 -03:00
gdkchan and GitHub
3148c0c21c
Unify GpuAccessorBase and TextureDescriptorCapableGpuAccessor ( #2542 )
...
* Unify GpuAccessorBase and TextureDescriptorCapableGpuAccessor
* Shader cache version bump
2021-08-11 18:56:59 -03:00
gdkchan and GitHub
d44d8f2eb6
Workaround for cubemap view data upload bug on Intel ( #2539 )
...
* Workaround for cubemap view data upload bug on Intel
* Trigger CI
2021-08-11 23:19:28 +02:00
gdkchan and GitHub
c3e2646f9e
Workaround for Intel FrontFacing built-in variable bug ( #2540 )
2021-08-11 23:01:06 +02:00
gdkchan and GitHub
ed754af8d5
Make sure attributes used on subsequent shader stages are initialized ( #2538 )
2021-08-11 22:27:00 +02:00
gdkchan and GitHub
10d649e6d3
Calculate vertex buffer sizes from index buffer ( #1663 )
...
* Calculate vertex buffer size from maximum index buffer index
* Increase maximum index buffer count for it to be considered profitable for counting
2021-08-11 22:06:09 +02:00
gdkchan and GitHub
bb8a920b63
Do not dirty memory tracking region handles if they are partially unmapped ( #2536 )
2021-08-11 21:50:33 +02:00
gdkchan and GitHub
0f6ec446ea
Replace BGRA and scale uniforms with a uniform block ( #2496 )
...
* Replace BGRA and scale uniforms with a uniform block
* Setting the data again on program change is no longer needed
* Optimize and resolve some warnings
* Avoid redundant support buffer updates
* Some optimizations to BindBuffers (now inlined)
* Unify render scale arrays
2021-08-11 21:33:43 +02:00
gdkchan and GitHub
d9d18439f6
Use a new approach for shader BRX targets ( #2532 )
...
* Use a new approach for shader BRX targets
* Make shader cache actually work
* Improve the shader pattern matching a bit
* Extend LDC search to predecessor blocks, catches more cases
* Nit
* Only save the amount of constant buffer data actually used. Avoids crashes on partially mapped buffers
* Ignore Rd on predicate instructions, as they do not have a Rd register (catches more cases)
2021-08-11 20:59:42 +02:00
gdkchan and GitHub
ff5df5d8a1
Support non-contiguous copies on I2M and DMA engines ( #2473 )
...
* Support non-contiguous copies on I2M and DMA engines
* Vector copy should start aligned on I2M
* Nits
* Zero extend the offset
2021-08-04 22:20:58 +02:00
gdkchan and GitHub
a27986c311
Make audio disposal thread safe on all 3 backends ( #2527 )
...
* Make audio disposal thread safe on all 3 backends
* Make OpenAL more consistent with the other backends
* Remove Window.Cursor = null, and change dummy TValue to byte
2021-08-04 15:28:33 -03:00
gdkchan and GitHub
bb6fab2009
Ensure that DMA copy target textures are kept alive or flushed ( #2478 )
2021-07-14 14:48:57 -03:00
gdkchan and GitHub
96a070a9a7
Do not require texture and sampler pools being initialized ( #2476 )
2021-07-14 14:27:22 -03:00
gdkchan and GitHub
9d688e37d6
Close transfer memory properly on nvservices ( #2477 )
2021-07-14 14:09:00 -03:00
gdkchan and GitHub
04dce402ac
Implement a fast path for I2M transfers ( #2467 )
2021-07-12 16:48:57 -03:00
gdkchan and GitHub
9b08abc644
Fix shader compilation on shaders that uses rectangle textures ( #2471 )
2021-07-12 16:20:33 -03:00
gdkchan and GitHub
40b21cc3c4
Separate GPU engines (part 2/2) ( #2440 )
...
* 3D engine now uses DeviceState too, plus new state modification tracking
* Remove old methods code
* Remove GpuState and friends
* Optimize DeviceState, force inline some functions
* This change was not supposed to go in
* Proper channel initialization
* Optimize state read/write methods even more
* Fix debug build
* Do not dirty state if the write is redundant
* The YControl register should dirty either the viewport or front face state too, to update the host origin
* Avoid redundant vertex buffer updates
* Move state and get rid of the Ryujinx.Graphics.Gpu.State namespace
* Comments and nits
* Fix rebase
* PR feedback
* Move changed = false to improve codegen
* PR feedback
* Carry RyuJIT a bit more
2021-07-11 17:20:40 -03:00
gdkchan and GitHub
b5190f1681
Fix virtual memory allocation being out of range ( #2464 )
2021-07-11 16:24:31 -03:00
gdkchan and GitHub
b1a9d17cf8
Fix GetWritableRegion write-back ( #2456 )
2021-07-10 21:50:10 +02:00
gdkchan and GitHub
59900d7f00
Unscale textureSize when resolution scaling is used ( #2441 )
...
* Unscale textureSize when resolution scaling is used
* Fix textureSize on compute
* Flag texture size as needing res scale values too
2021-07-09 00:09:07 -03:00
gdkchan and GitHub
b02719cf41
Flush UBO updates more frequently ( #2407 )
2021-07-07 21:20:52 -03:00
gdkchan and GitHub
8b44eb1c98
Separate GPU engines and make state follow official docs (part 1/2) ( #2422 )
...
* Use DeviceState for compute and i2m
* Migrate 2D class, more comments
* Migrate DMA copy engine
* Remove now unused code
* Replace GpuState by GpuAccessorState on GpuAcessor, since compute no longer has a GpuState
* More comments
* Add logging (disabled)
* Add back i2m on 3D engine
2021-07-07 20:56:06 -03:00
gdkchan and GitHub
d125fce3e8
Allow shader language and target API to be specified on the shader translator ( #2402 )
2021-07-06 21:20:06 +02:00
gdkchan and GitHub
fbb4019ed5
Initial support for separate GPU address spaces ( #2394 )
...
* Make GPU memory manager a member of GPU channel
* Move physical memory instance to the memory manager, and the caches to the physical memory
* PR feedback
2021-06-29 19:32:02 +02:00
gdkchan and GitHub
fefd4619a5
Add support for custom line widths ( #2406 )
2021-06-25 20:11:54 -03:00
gdkchan and GitHub
493648df31
Fix default value for unwritten shader outputs ( #2412 )
...
* Fix shader default output values
* Shader cache version bump
2021-06-25 19:56:03 -03:00
gdkchan and GitHub
ed2f5ede0f
Fix texture sampling with depth compare and LOD level or bias ( #2404 )
...
* Fix texture sampling with depth compare and LOD level or bias
* Shader cache version bump
* nit: Sorting
2021-06-25 00:54:50 +02:00
gdkchan and GitHub
a10b2c5ff2
Initial support for GPU channels ( #2372 )
...
* Ground work for separate GPU channels
* Rename TextureManager to TextureCache
* Decouple texture bindings management from the texture cache
* Rename BufferManager to BufferCache
* Decouple buffer bindings management from the buffer cache
* More comments and proper disposal
* PR feedback
* Force host state update on channel switch
* Typo
* PR feedback
* Missing using
2021-06-24 01:51:41 +02:00
gdkchan and GitHub
aea7a6631c
Reduce number of dlls on distribution with single file publish ( #2211 )
...
* Enable single file publish
* Set DebugType to embedded on build scripts
2021-06-24 00:40:19 +02:00
gdkchan and GitHub
c71ae9c85c
Fix shader texture LOD query ( #2397 )
2021-06-23 23:31:14 +02:00
gdkchan and GitHub
ab9d4b862d
Implement VORN (register) Arm32 instruction ( #2396 )
2021-06-23 23:21:23 +02:00
gdkchan and GitHub
49edf14a3e
Pass all inputs when geometry shader passthrough is enabled ( #2362 )
...
* Pass all inputs when geometry shader passthrough is enabled
* Shader cache version bump
2021-06-23 23:04:59 +02:00
gdkchan and GitHub
65fee49e8a
Fix separate bindless sampler at offset 0 ( #2360 )
2021-06-20 20:48:12 +02:00
gdkchan and GitHub
02e2e561ac
Support bindless textures with separate constant buffers for texture and sampler ( #2339 )
2021-06-09 00:42:25 +02:00