gdkchan and GitHub
329ba5b39b
Fix incorrect GPU GL blend func values ( #1612 )
2020-10-13 14:45:41 +11:00
gdkchan and GitHub
d36c4bfba5
Fix output component register on pixel shaders ( #1613 )
...
* Fix output component register on pixel shaders
* Clean up usings
* Do not advance if no component is enabled for the target, this keeps the previous behavior
2020-10-13 14:44:55 +11:00
gdkchan and GitHub
6a51b628f9
Fix error when dual source blend is used ( #1610 )
...
* Fix error when dual source blend is used
* Ensure framebuffer
2020-10-12 21:50:41 -03:00
gdkchan and GitHub
e4777717cd
Implement LEA.HI shader instruction ( #1609 )
2020-10-12 21:46:04 -03:00
gdkchan and GitHub
b066cfc1a3
Add support for shader constant buffer slot indexing ( #1608 )
...
* Add support for shader constant buffer slot indexing
* Fix typo
2020-10-12 21:40:50 -03:00
gdkchan and GitHub
14fd9aa640
Fix H264 output frame size when decoding videos of different sizes ( #1606 )
2020-10-11 11:09:38 +02:00
gdkchan and GitHub
0954e76a26
Improve BRX target detection heuristics ( #1591 )
2020-10-03 15:43:33 +10:00
gdkchan and GitHub
86412ed30a
Supper 2D array ASTC compressed texture formats decoding ( #1593 )
2020-10-02 11:22:23 +10:00
gdkchan and GitHub
f2b12c9749
Remove old, unused CPU optimization ( #1586 )
2020-09-30 16:16:34 -03:00
gdkchan and GitHub
1560f236da
Convert 1D texture targets to 2D ( #1584 )
...
* Convert 1D texture targets to 2D
* Fix typo
* Simplify some code
* Should mask that too
* Consistency
2020-09-29 22:28:50 +02:00
gdkchan and GitHub
bd28ce90e6
Implement small indexed draws and other fixes to make guest Vulkan work ( #1558 )
2020-09-24 09:48:34 +10:00
gdkchan and GitHub
6c9565693f
IPC refactor part 1: Use explicit separate threads to process requests ( #1447 )
...
* Changes to allow explicit management of service threads
* Remove now unused code
* Remove ThreadCounter, its no longer needed
* Allow and use separate server per service, also fix exit issues
* New policy change: PTC version now uses PR number
2020-09-22 14:50:40 +10:00
gdkchan and GitHub
90ab28d1c6
Align register index between output targets on pixel shaders ( #1559 )
2020-09-21 13:45:04 +10:00
gdkchan and GitHub
1eea35554c
Better viewport flipping and depth mode detection method ( #1556 )
...
* Use a better viewport flipping approach
* New approach to detect depth mode
* nit: Sort method on the OpenGL backend
* Adjust spacing on comment
* Unswap near and far parameters based on ScaleZ
2020-09-19 19:46:49 -03:00
gdkchan and GitHub
6cc187da59
SIMD&FP load/store with scale > 4 should be undefined ( #1522 )
...
* SIMD&FP load/store with scale > 4 should be undefined
* Catch more invalid encodings for FP&SIMD LDR/STR (reg variant)
* Set PTC version to PR number
2020-09-01 17:02:23 -03:00
gdkchan and GitHub
3d294a9a6c
Fix PSL and MRG flags on XMAD cbuf-reg shader instruction ( #1520 )
2020-09-01 15:07:20 -03:00
gdkchan and GitHub
bdfbcf4017
Fix regression on texture compatibility match checks ( #1521 )
2020-09-01 16:58:40 +10:00
gdkchan and GitHub
09341dc11d
Fix off by one error in pages count calculation on GPU pool ( #1511 )
2020-08-29 16:42:34 -03:00
gdkchan and GitHub
01ff648bdf
Fix asserts on VP9 decoder in debug mode and build warnings ( #1480 )
2020-08-20 00:07:04 -03:00
gdkchan and GitHub
157ad3f54f
Silence several build warnings ( #1428 )
...
* Silence several build warnings
* Remove fixed buffers from NVDEC struct
* Remove unused field and usings
* Fix wrong name
* Silence more warning on H264 PictureInfo
2020-08-06 23:40:41 +02:00
gdkchan and GitHub
60db4c3530
Implement a Macro JIT ( #1445 )
...
* Implement a Macro JIT
* Nit: space
2020-08-03 03:36:57 +02:00
gdkchan and GitHub
9878fc2d3c
Implement inline memory load/store exclusive and ordered ( #1413 )
...
* Implement inline memory load/store exclusive
* Fix missing REX prefix on 8-bits CMPXCHG
* Increment PTC version due to bugfix
* Remove redundant memory checks
* Address PR feedback
* Increment PPTC version
2020-07-30 11:29:28 -03:00
gdkchan and GitHub
57bb0abda3
Print guest stack trace on invalid memory access ( #1407 )
...
* Print guest stack trace on invalid memory access
* Improve XML docs
2020-07-30 23:16:41 +10:00
gdkchan and GitHub
636542d817
Refactor shader translator ShaderConfig and reduce the number of out args ( #1438 )
2020-07-30 15:53:23 +10:00
gdkchan and GitHub
991784868f
Fix shader regression on Intel iGPUs by reverting layout changes ( #1425 )
2020-07-29 08:01:11 +10:00
gdkchan and GitHub
43c13057da
Implement alpha test using legacy functions ( #1426 )
2020-07-28 18:30:08 -03:00
gdkchan and GitHub
938c06c652
Implement VIC BGRA output surface format ( #1430 )
2020-07-28 18:25:58 -03:00
gdkchan and GitHub
51fbc1fde4
Use polygon offset clamp if supported ( #1429 )
2020-07-26 18:11:28 -03:00
gdkchan and GitHub
8dbcae1ff8
Implement BGRA texture support ( #1418 )
...
* Implement BGRA texture support
* Missing AppendLine
* Remove empty lines
* Address PR feedback
2020-07-26 00:03:40 -03:00
gdkchan and GitHub
2678bf0010
PPTC version increment ( #1427 )
2020-07-25 20:01:57 +02:00
gdkchan and GitHub
111534a74e
Remove GPU MemoryAccessor ( #1423 )
...
* Remove GPU MemoryAccessor
* Update outdated XML doc
* Update more outdated stuff
2020-07-25 16:39:45 +10:00
gdkchan and GitHub
80d4199fb3
Refactor NativeContext ( #1410 )
...
* Refactor NativeContext
* Fix bugs
* Use correct counts
* Check index using register count constants
2020-07-24 16:13:14 -03:00
gdkchan and GitHub
5a7df48975
New GPFifo and fast guest constant buffer updates ( #1400 )
...
* Add new structures from official docs, start migrating GPFifo
* Finish migration to new GPFifo processor
* Implement fast constant buffer data upload
* Migrate to new GPFifo class
* XML docs
2020-07-23 23:53:25 -03:00
gdkchan and GitHub
1c84b683c2
Fix IDeliveryCacheProgressService GetEvent ( #1409 )
2020-07-21 10:54:50 +10:00
gdkchan and GitHub
e7f2a5ecb7
Fix session service disposal and improve transfer memory implementation ( #1397 )
...
* Fix session service disposal and improve transfer memory implementation
* Remove useless assignment
2020-07-19 15:24:18 -03:00
gdkchan and GitHub
9d65de74fc
Do not print guest stack trace for svcBreak debug calls ( #1398 )
2020-07-18 12:54:41 +10:00
gdkchan and GitHub
20774dab14
Improve kernel WaitSynchronization syscall implementation ( #1362 )
2020-07-17 14:22:13 +10:00
gdkchan and GitHub
9f6b24edfd
Improve kernel IPC related syscalls ( #1379 )
...
* Implement session count decrement when the handle is closed
* Remove unused field
* Implement SendSyncRequestWithUserBuffer, SendAsyncRequestWithUserBuffer and ReplyAndReceiveWithUserBuffer syscalls
* Nits
* Fix swapped copy dst/src
* Add missing pointer buffer descriptor write on reply
* Fix IPC unaligned buffer copy and restoring client attributes on reply
* Oops
* Fix SetIpcMappingPermission
* Fix unaligned copy bugs
* Free memory used for temporary IPC buffers
2020-07-17 14:19:07 +10:00
gdkchan and GitHub
46f8cef6a9
Fix resource limit reserve taking too long ( #1391 )
2020-07-17 14:18:31 +10:00
gdkchan and GitHub
986be200ba
Force TFB rebind after buffer modifications ( #1392 )
2020-07-15 19:05:06 -03:00
gdkchan and GitHub
788ca6a411
Initial transform feedback support ( #1370 )
...
* Initial transform feedback support
* Some nits and fixes
* Update ReportCounterType and Write method
* Can't change shader or TFB bindings while TFB is active
* Fix geometry shader input names with new naming
2020-07-15 13:01:10 +10:00
gdkchan and GitHub
2900dda633
Fix depth stencil formats copy by matching equivalent color formats ( #1198 )
2020-07-13 21:41:30 +10:00
4d02a2d2c0
New NVDEC and VIC implementation ( #1384 )
...
* Initial NVDEC and VIC implementation
* Update FFmpeg.AutoGen to 4.3.0
* Add nvdec dependencies for Windows
* Unify some VP9 structures
* Rename VP9 structure fields
* Improvements to Video API
* XML docs for Common.Memory
* Remove now unused or redundant overloads from MemoryAccessor
* NVDEC UV surface read/write scalar paths
* Add FIXME comments about hacky things/stuff that will need to be fixed in the future
* Cleaned up VP9 memory allocation
* Remove some debug logs
* Rename some VP9 structs
* Remove unused struct
* No need to compile Ryujinx.Graphics.Host1x with unsafe anymore
* Name AsyncWorkQueue threads to make debugging easier
* Make Vp9PictureInfo a ref struct
* LayoutConverter no longer needs the depth argument (broken by rebase)
* Pooling of VP9 buffers, plus fix a memory leak on VP9
* Really wish VS could rename projects properly...
* Address feedback
* Remove using
* Catch OperationCanceledException
* Add licensing informations
* Add THIRDPARTY.md to release too
Co-authored-by: Thog <me@thog.eu >
2020-07-12 05:07:01 +02:00
gdkchan and GitHub
38b26cf424
Mask shift constants on x86 backend ( #1382 )
...
* Mask shift constants on x86 backendd
* Version bump
2020-07-11 15:52:38 +10:00
gdkchan and GitHub
e13154c83d
Implement shader LEA instruction and improve bindless image load/store ( #1355 )
2020-07-04 01:48:44 +02:00
gdkchan and GitHub
76e5af967a
Fix buffer to 3D texture copy ( #1354 )
2020-07-04 01:37:36 +02:00
gdkchan and GitHub
dbeb50684d
Support inline index buffer data ( #1351 )
...
* Support inline index buffer data
* Sort usings
2020-07-04 00:41:27 +02:00
gdkchan and GitHub
b0d9ec8a82
Fix compute restore of previous shader state ( #1352 )
2020-07-04 00:30:41 +02:00
gdkchan and GitHub
302d0f830c
Call syncpoint expiration callback outside of the lock ( #1349 )
2020-07-04 00:22:06 +02:00
gdkchan and GitHub
0ac4c0c92c
Remove dummy LLE project ( #1336 )
2020-07-01 15:14:36 -03:00
gdkchan and GitHub
96951b7d04
Fix regression caused by wrong SB descriptor offset ( #1316 )
2020-06-22 13:48:32 +02:00
gdkchan and GitHub
44d7fcff39
Implement FIFO semaphore ( #1286 )
...
* Implement FIFO semaphore
* New enum for FIFO semaphore operation
2020-05-29 10:51:10 +02:00
gdkchan and GitHub
12cfaf56f0
Add new depth-stencil formats ( #1284 )
2020-05-29 09:01:18 +10:00
gdkchan and GitHub
a15b951721
Fix wrong face culling once and for all ( #1277 )
...
* Viewport swizzle support on NV and clip origin
* Initialize default viewport swizzle state, emulate viewport swizzle on shaders when not supported
* Address PR feedback
2020-05-28 09:03:07 +10:00
gdkchan and GitHub
5795bb1528
Support separate textures and samplers ( #1216 )
...
* Support separate textures and samplers
* Add missing bindless flag, fix SNORM format on buffer textures
* Add missing separation
* Add comments about the new handles
2020-05-27 16:07:10 +02:00
gdkchan and GitHub
0b6d206daa
Omit image format if possible, and fix BA bit ( #1280 )
...
* Omit image format if possible, and fix BA bit
* Match extension name
2020-05-27 11:00:21 +02:00
gdkchan and GitHub
5011640b30
Spanify Graphics Abstraction Layer ( #1226 )
...
* Spanify Graphics Abstraction Layer
* Be explicit about BufferHandle size
2020-05-23 11:46:09 +02:00
gdkchan and GitHub
96c7988671
Remove CpuId IR instruction ( #1227 )
2020-05-13 15:30:21 +10:00
gdkchan and GitHub
1e687c4eea
Fix block iteration on kernel MemoryManager InsertBlock function ( #1184 )
2020-05-06 22:48:57 +10:00
gdkchan and GitHub
b8eb6abecc
Refactor shader GPU state and memory access ( #1203 )
...
* Refactor shader GPU state and memory access
* Fix NVDEC project build
* Address PR feedback and add missing XML comments
2020-05-06 11:02:28 +10:00
gdkchan and GitHub
15d1cc806b
Move kernel state out of the Horizon class ( #1107 )
...
* Move kernel state from Horizon to KernelContext
* Merge syscalls partial classes, split 32 and 64-bit variants
* Sort usings
2020-05-04 13:41:29 +10:00
gdkchan and GitHub
f77694e4f7
Implement a new physical memory manager and replace DeviceMemory ( #856 )
...
* Implement a new physical memory manager and replace DeviceMemory
* Proper generic constraints
* Fix debug build
* Add memory tests
* New CPU memory manager and general code cleanup
* Remove host memory management from CPU project, use Ryujinx.Memory instead
* Fix tests
* Document exceptions on MemoryBlock
* Fix leak on unix memory allocation
* Proper disposal of some objects on tests
* Fix JitCache not being set as initialized
* GetRef without checks for 8-bits and 16-bits CAS
* Add MemoryBlock destructor
* Throw in separate method to improve codegen
* Address PR feedback
* QueryModified improvements
* Fix memory write tracking not marking all pages as modified in some cases
* Simplify MarkRegionAsModified
* Remove XML doc for ghost param
* Add back optimization to avoid useless buffer updates
* Add Ryujinx.Cpu project, move MemoryManager there and remove MemoryBlockWrapper
* Some nits
* Do not perform address translation when size is 0
* Address PR feedback and format NativeInterface class
* Remove ghost parameter description
* Update Ryujinx.Cpu to .NET Core 3.1
* Address PR feedback
* Fix build
* Return a well defined value for GetPhysicalAddress with invalid VA, and do not return unmapped ranges as modified
* Typo
2020-05-04 08:54:50 +10:00
gdkchan and GitHub
1758424208
Use correct swizzle on depth-stencil textures ( #1196 )
2020-05-03 23:18:00 +02:00
gdkchan and GitHub
ea3d5fde73
Remove buffer invalidation ( #1194 )
2020-05-03 23:07:42 +02:00
gdkchan and GitHub
10a2b9dca3
Fix shadow RAM affecting MME methods ( #1168 )
2020-04-27 08:22:18 +10:00
gdkchan and GitHub
9261ec6bc8
Fix MME shadow RAM implementation ( #1051 )
2020-04-25 23:56:56 +10:00
gdkchan and GitHub
1c9aba6de1
Fix mode and Reg08.H1 decoding on XMAD instruction ( #1156 )
2020-04-25 23:40:29 +10:00
gdkchan and GitHub
34d19f381c
Fix texture level offset/size calculation when sparse tile width is > 1 ( #1142 )
...
* Fix texture level offset/size calculation when sparse tile width is > 1
* Sparse tile width affects layer size alignment aswell
2020-04-25 23:40:20 +10:00
gdkchan and GitHub
bcc5b0d21e
Fix kernel memory allocator block coalescing ( #1155 )
...
* Fix kernel memory allocator block coalescing
* Fix and move clear bit logic to a separate method
2020-04-25 23:25:22 +10:00
gdkchan and GitHub
3cb1fa0e85
Implement texture buffers ( #1152 )
...
* Implement texture buffers
* Throw NotSupportedException where appropriate
2020-04-25 23:02:18 +10:00
gdkchan and GitHub
fe5bb439f1
Do temp constant copy for CompareAndSwap, other improvements to PreAllocator ( #1126 )
...
* Do temp constant copy for CompareAndSwap, other improvements to PreAllocator
* Nit
2020-04-25 23:00:54 +10:00
gdkchan and GitHub
ff86494d68
Remove leftover of debugging code for shader texture format ( #1141 )
2020-04-22 16:02:07 +02:00
gdkchan and GitHub
6bfe4715f0
Initial conditional rendering support ( #1012 )
...
* Initial conditional rendering support
* Properly reset state
* Support conditional modes and skeleton a counter cache for future host conditional rendering
* Address PR feedback
2020-04-22 16:00:11 +10:00
gdkchan and GitHub
03711dd7b5
Implement SULD shader instruction ( #1117 )
...
* Implement SULD shader instruction
* Some nits
2020-04-22 09:35:28 +10:00
gdkchan and GitHub
91fa1debd4
Report more realistic GPU timestamps when FastGpuTime is enabled ( #1139 )
2020-04-20 22:41:07 +10:00
gdkchan and GitHub
92cc37e365
Fix negation of HADD2 constant buffer source ( #1116 )
2020-04-15 09:01:26 +10:00
gdkchan and GitHub
e93ca84b14
Better IPA shader instruction implementation ( #1082 )
...
* Fix varying interpolation on fragment shader
* Some nits
* Alignment
2020-04-03 11:20:47 +11:00
gdkchan and GitHub
5b5239ab5b
Remove output interpolation qualifier ( #1070 )
2020-04-02 12:24:55 +11:00
gdkchan and GitHub
d599fba711
Implement FCMP shader instruction ( #1067 )
2020-03-30 12:04:00 +02:00
gdkchan and GitHub
9948a7be53
Support constant attributes (with a value of zero) ( #1066 )
...
* Support constant attributes (with a value of zero)
* Remove extra line
2020-03-30 13:11:24 +11:00
gdkchan and GitHub
b18ef8e3a0
Workaround for AMD and Intel view format bug ( #1050 )
...
* Workaround for Intel view format bug
* Dispose of the intermmediate texture aswell
* Apply workaround on AMD aswell
2020-03-29 23:48:39 +11:00
gdkchan and GitHub
ab4867505e
Implement GPU scissors ( #1058 )
...
* Implement GPU scissors
* Remove unused using
* Add missing changes for Clear
2020-03-29 14:02:58 +11:00
gdkchan and GitHub
1586450a38
Implement VMNMX shader instruction ( #1032 )
...
* Implement VMNMX shader instruction
* No need for the gap on the enum
* Fix typo
2020-03-25 15:49:10 +01:00
gdkchan and GitHub
6edc929894
Implement ICMP shader instruction ( #1010 )
2020-03-23 17:32:30 +01:00
gdkchan and GitHub
9a208c4fb5
Keep sRGB enabled for texture blits ( #1009 )
2020-03-23 09:34:26 +11:00
gdkchan and GitHub
49d7b1c7d8
Implement textureQueryLevels ( #1007 )
2020-03-23 08:31:31 +11:00
gdkchan and GitHub
8e64984158
Support partial invalidation on texture access ( #1000 )
...
* Support partial invalidation on texture access
* Fix typo
* PR feedback
* Fix modified size clamping
2020-03-20 14:17:11 +11:00
gdkchan and GitHub
8bb64ac69c
Improve shader sampler type selection ( #989 )
2020-03-15 11:24:45 +11:00
gdkchan and GitHub
ff2bac9c90
Implement MME shadow RAM ( #987 )
2020-03-13 12:30:26 +11:00
gdkchan and GitHub
c26f3774bd
Implement VMULL, VMLSL, VRSHR, VQRSHRN, VQRSHRUN AArch32 instructions + other fixes ( #977 )
...
* Implement VMULL, VMLSL, VQRSHRN, VQRSHRUN AArch32 instructions plus other fixes
* Re-align opcode table
* Re-enable undefined, use subclasses to fix checks
* Add test and fix VRSHR instruction
* PR feedback
2020-03-11 11:49:27 +11:00
gdkchan and GitHub
89ccec197e
Implement VMOVL and VORR.I32 AArch32 SIMD instructions ( #960 )
...
* Implement VMOVL and VORR.I32 AArch32 SIMD instructions
* Rename <dt> to <size> on test description
* Rename Widen to Long and improve VMOVL implementation a bit
2020-03-10 16:17:30 +11:00
gdkchan and GitHub
61d79facd1
Optimize x64 loads and stores using complex addressing modes ( #972 )
...
* Optimize x64 loads and stores using complex addressing modes
* This was meant to be used for testing
2020-03-10 09:29:34 +11:00
gdkchan and GitHub
ab3b6ea6d4
A64 SIMD LDP and STP with size = 0b11 is undefined ( #971 )
2020-03-07 13:39:52 +11:00
gdkchan and GitHub
d9ed827696
Don't decode blocks starting outside mapped memory & undefined instead of throw on invalid sysreg coprocessor ( #964 )
...
* Don't decode blocks in invalid memory locations.
* Emit undefined instruction on invalid coprocessor
...rather than throwing.
* Call undefined instruction directly.
2020-03-04 16:25:27 -03:00
gdkchan and GitHub
dc97457bf0
Initial support for double precision shader instructions. ( #963 )
...
* Implement DADD, DFMA and DMUL shader instructions
* Rename FP to FP32
* Correct double immediate
* Classic mistake
2020-03-03 15:02:08 +01:00
7d1a294eae
Implement SMULWB, SMULWT, SMLAWB, SMLAWT (AArch32) ( #953 )
...
* Implement SMULWB, SMULWT, SMLAWB, SMLAWT, and add tests for some multiply instructions
* Improve test descriptions
* Rename SMULH to SMUL__
Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com >
2020-03-01 18:47:05 +11:00
gdkchan and GitHub
fb0939f9b6
Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions ( #954 )
...
* Implement SMULWB, SMULWT, SMLAWB, SMLAWT, and add tests for some multiply instructions
* Improve test descriptions
* Rename SMULH to SMUL__
* Add SSAT, SSAT16, USAT and USAT16 ARM32 instructions
* Fix new tests
* Replace AND 0xFFFF with 16-bits zero extension (more efficient)
2020-03-01 07:51:55 +11:00
gdkchan and GitHub
b8ee5b15ab
Implement FACGE and FACGT (Scalar and Vector) AArch64 SIMD instructions ( #956 )
2020-03-01 07:51:17 +11:00
gdkchan and GitHub
6204f0e47a
Set Undefined instruction emitter for Undefined property on InstDescriptor ( #957 )
2020-02-29 12:12:15 +01:00
gdkchan and GitHub
e5f78fb1d4
Replace LinkedList by IntrusiveList to avoid allocations on JIT ( #931 )
...
* Replace LinkedList by IntrusiveList to avoid allocations on JIT
* Fix wrong replacements
2020-02-17 22:30:54 +01:00