Commit Graph
100 Commits
Author SHA1 Message Date
gdkchanandGitHub f6fcef483f Fix inverted low/high mask value on GetThreadCoreMask32 syscall (#2325) 2021-05-30 20:44:59 +02:00
gdkchanandGitHub fb65f392d1 Improve accuracy of reciprocal step instructions (#2305)
* Improve accuracy of reciprocal step instructions

* Fix small mistake on RECPE rounding, nits, PTC version bump
2021-05-24 20:20:07 +10:00
gdkchanandGitHub 3fd6b55f04 Fix value of constant vertex attributes (#2307) 2021-05-24 17:38:38 +10:00
gdkchanandGitHub e9c15d32cb Use a different method for out of bounds blit (#2302)
* Use a different method for out of bounds blit

* This is not needed
2021-05-22 01:26:49 +02:00
gdkchanandGitHub a03bbef4d6 Add another Depth32F texture format (#2304) 2021-05-22 01:15:08 +02:00
gdkchanandGitHub f0add129e2 Fix non-independent blend state not being updated (#2303)
* Fix non-independent blend state not being updated

* Actually, this is not needed
2021-05-22 01:08:00 +02:00
gdkchanandGitHub 12533e5c9d Fix buffer and texture uses not being propagated for vertex A/B shaders (#2300)
* Fix buffer and texture uses not being propagated for vertex A/B shaders

* Shader cache version bump
2021-05-20 21:43:23 +02:00
gdkchanandGitHub b34c0a47b4 Fix constant buffer array size when indexing is used and other buffer descriptor and resolution scale regressions (#2298)
* Fix constant buffer array size when indexing is used

* Change default QueryConstantBufferUse value

* Fix more regressions

* Ensure proper order
2021-05-20 15:12:15 -03:00
gdkchanandGitHub 49745cfa37 Move shader resource descriptor creation out of the backend (#2290)
* Move shader resource descriptor creation out of the backend

* Remove now unused code, and other nits

* Shader cache version bump

* Nits

* Set format for bindless image load/store

* Fix buffer write flag
2021-05-19 23:15:26 +02:00
gdkchanandGitHub e318022b89 Fold constant offsets and group constant addresses (#2285)
* Fold constant offsets and group constant addresses

* PPTC version bump
2021-05-13 21:26:57 +02:00
gdkchanandGitHub a8022ca3a1 Fix race in SM initialization (#2280) 2021-05-12 00:57:21 +02:00
gdkchanandGitHub ebdbaa6db0 Fix a specific core migration bug on the scheduler (#2271) 2021-05-11 13:18:50 -03:00
gdkchanandGitHub 0e9823d7e6 Fix shader buffer write flag on atomic instructions (#2261)
* Fix shader buffer write flag on atomic instructions

* Shader cache version bump
2021-05-01 20:46:21 +02:00
gdkchanandGitHub 20d2347971 Fix GetClockSnapshot not writing steady clock timepoint (#2249) 2021-04-26 23:56:14 +02:00
gdkchanandGitHub 992133e9ca Fix IsRegionInUse check on NV memory allocator (#2243) 2021-04-25 02:13:58 +02:00
gdkchanandGitHub 4770cfa920 Only enable clip distance if written to on shader (#2217)
* Only enable clip distance if written to on shader

* Signal InstanceId use through FeatureFlags

* Shader cache version bump
2021-04-20 12:33:54 +02:00
gdkchanandGitHub 40e276c9b5 Improve shader global memory to storage pass (#2200)
* Improve shader global memory to storage pass

* Formatting and more comments

* Shader cache version bump
2021-04-18 12:31:39 +02:00
gdkchanandGitHub 001005b3d5 Fix sub-image copies on intel GPUs (#2198) 2021-04-13 03:09:42 +02:00
gdkchanandGitHub d43a56726c (CPU) Fix CRC32 instruction when constant values are used as input (#2183) 2021-04-07 23:43:08 +02:00
gdkchanandGitHub 874540bb5c Allow DRAM size to be increased from 4GB to 6GB (#2174)
* Allow DRAM size to be increased from 4GB to 6GB

* Add option on the UI
2021-04-04 14:06:59 +02:00
gdkchanandGitHub f665e1b409 Hold reference for render targets in use (#2156) 2021-04-02 16:33:39 +02:00
gdkchanandGitHub 524fe3bea4 Implement shader HelperThreadNV (#2163)
* Implement shader HelperThreadNV

* Bump shader cache version

* Use gl_HelperInvocation since its supported across all vendors

* Nit
2021-04-02 21:50:35 +11:00
gdkchanandGitHub a0b4799f19 Fix ZN flags set for shader instructions using RZ.CC dest (#2147)
* Fix ZN flags set for shader instructions using RZ.CC dest

* Shader cache version bump and nits
2021-03-27 22:59:05 +01:00
gdkchanandGitHub 5ab5b0e709 Close ILibraryAppletAccessor handles on disposal (#2094) 2021-03-10 21:36:38 +01:00
gdkchanandGitHub 9d82d27df2 Fix memory tracking performance regression (#2026)
* Fix memory tracking performance regression

* Set PTC version
2021-02-17 09:16:20 +11:00
715b605e95 Validate CPU virtual addresses on access (#1987)
* Enable PTE null checks again

* Do address validation on EmitPtPointerLoad, and make it branchless

* PTC version increment

* Mask of pointer tag for exclusive access

* Move mask to the correct place

Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>
2021-02-16 19:04:19 +01:00
gdkchanandGitHub c465d771dd Enable multithreaded VP9 decoding (#2009)
* Enable multithreaded VP9 decoding

* Limit the number of threads used for video decoding
2021-02-11 01:54:42 +01:00
gdkchanandGitHub 5ea7d77981 Fix inter-process data copy on non-contiguous physical regions (#1988) 2021-02-08 10:54:49 +11:00
gdkchanandGitHub 4047477866 Simplify handling of shader vertex A (#1999)
* Simplify handling of shader vertex A

* Theres no transformation feedback, its transform

* Merge TextureHandlesForCache
2021-02-08 10:42:17 +11:00
gdkchanandGitHub ee28ccebf4 Disable partial JIT invalidation on unmap (#1991) 2021-02-08 10:25:14 +11:00
gdkchanandGitHub 7016d95eb1 Implement ETC2 (RGB) texture format (#2000)
* Implement ETC2 format

* Fix component counts for compressed formats
2021-02-08 10:23:56 +11:00
gdkchanandGitHub 67033ed8e0 Do not flush multisample textures (#1973) 2021-02-01 08:30:16 +01:00
gdkchanandGitHub 053dcfdb05 Use multiple dest operands for shader call instructions (#1975)
* Use multiple dest operands for shader call instructions

* Passing opNode is no longer needed
2021-02-01 11:13:38 +11:00
gdkchanandGitHub f93089a64f Implement geometry shader passthrough (#1961)
* Implement geometry shader passthrough

* Cache version change
2021-01-29 14:38:51 +11:00
gdkchanandGitHub 4b7c7dab9e Support multiple destination operands on shader IR and shuffle predicates (#1964)
* Support multiple destination operands on shader IR and shuffle predicates

* Cache version change
2021-01-28 10:59:47 +11:00
gdkchanandGitHub dcce407071 Lower precision of estimate instruction results to match Arm behavior (#1943)
* Lower precision of estimate instruction results to match Arm behavior

* PTC version update

* Nits
2021-01-28 10:23:00 +11:00
gdkchanandGitHub 98d0240ce6 Support shader F32 to Bool reinterpretation (#1969) 2021-01-27 09:19:30 +01:00
gdkchanandGitHub a8e9dd2f83 Fix regression on shader atomic SSBO operations (#1967)
* Fix regression on shader atomic SSBO operations

* Update comment
2021-01-27 11:26:23 +11:00
gdkchanandGitHub caf049ed15 Avoid some redundant GL calls (#1958) 2021-01-27 08:44:07 +11:00
gdkchanandGitHub d6bd0470fb Fix conditional rendering without queries (#1965) 2021-01-27 08:42:12 +11:00
gdkchanandGitHub 9551bfdeeb Fix compute shader code dumping (#1960) 2021-01-26 18:27:18 +01:00
gdkchanandGitHub e453ba69f4 Add support for shader atomic min/max (S32) (#1948) 2021-01-26 17:38:33 +11:00
gdkchanandGitHub f94acdb4ef Allow out of bounds storage buffer access by aligning their sizes (#1870)
* Allow out of bounds storage buffer access by aligning their sizes

* Use correct size

* Fix typo and comment on the reason for the change
2021-01-25 09:22:19 +11:00
gdkchanandGitHub f565b0e5a6 Match texture if the physical range is the same (#1934)
* Match texture if the physical range is the same

* XML docs and comments
2021-01-23 13:38:00 +01:00
gdkchanandGitHub 6a95a3b01a Fix alignment on CreateTransferMemoryStorage (#1937) 2021-01-19 21:48:27 -03:00
gdkchanandGitHub b8353f5639 Enable parallel ASTC decoding by default (#1930) 2021-01-19 14:19:52 +11:00
gdkchanandGitHub 03aab63e03 Fix out of range exception when a invalid base lod is used (#1931) 2021-01-19 14:04:38 +11:00
gdkchanandGitHub 734747ae58 Reduce temporary copy/fill buffer size (#1926) 2021-01-19 13:31:15 +11:00
gdkchanandGitHub c4f56c5704 Support for resources on non-contiguous GPU memory regions (#1905)
* Support for resources on non-contiguous GPU memory regions

* Implement MultiRange physical addresses, only used with a single range for now

* Actually use non-contiguous ranges

* GetPhysicalRegions fixes

* Documentation and remove Address property from TextureInfo

* Finish implementing GetWritableRegion

* Fix typo
2021-01-17 19:44:34 +01:00
gdkchanandGitHub 3bad321d2b Fix mipmap base level being ignored for sampled textures and images (#1911)
* Fix mipmap base level being ignored for sampled textures and images

* Fix layer size and max level for textures

* Missing XML doc + reorder comments
2021-01-15 19:14:00 +01:00
gdkchanandGitHub 5be6ec6364 Fix shader LOP3 predicate write condition (#1910)
* Fix LOP3 predicate write condition

* Bump shader cache version
2021-01-14 01:07:50 +01:00
gdkchanandGitHub 36c6e67df2 Implement shader CC mode for ISCADD, X mode for ISETP and fix STL/STS/STG with RZ (#1901)
* Implement shader CC mode for ISCADD, X mode for ISETP and fix STS/STG with RZ

* Fix STG too and bump shader cache version

* Fix wrong name

* Fix Carry being inverted on comparison
2021-01-13 08:52:13 +11:00
gdkchanandGitHub df820a72de Implement clear buffer (fast path) (#1902)
* Implement clear buffer (fast path)

* Remove blank line
2021-01-13 08:50:54 +11:00
gdkchanandGitHub 6ed19c1488 Fix compute reserved constant buffer updates (#1892) 2021-01-10 21:02:58 +01:00
gdkchanandGitHub 8e0a421264 Fix remap when handle is 0 (#1882)
* Nvservices cleanup and attempt to fix remap

* Unmap if remap handle is 0

* Remove mapped pool add from Remap
2021-01-10 10:11:31 +11:00
gdkchanandGitHub b9200dd734 Support conditional on BRK and SYNC shader instructions (#1878)
* Support conditional on BRK and SYNC shader instructions

* Add TODO comment and bump cache version
2021-01-08 22:55:55 -03:00
gdkchanandGitHub 532b8cad13 Update KAddressArbiter implementation to 11.x kernel (#1851)
* Update KAddressArbiter implementation to 11.x kernel

* InsertSortedByPriority is no longer needed
2021-01-01 14:59:26 -03:00
gdkchanandGitHub f5d64b4d68 Terminate application before services (#1812)
* Terminate application before services

* Use flags instead of title ID
2020-12-17 01:44:06 +01:00
61634dd415 Clear JIT cache on exit (#1518)
* Initial cache memory allocator implementation

* Get rid of CallFlag

* Perform cache cleanup on exit

* Basic cache invalidation

* Thats not how conditionals works in C# it seems

* Set PTC version to PR number

* Address PR feedback

* Update InstEmitFlowHelper.cs

* Flag clear on address is no longer needed

* Do not include exit block in function size calculation

* Dispose jump table

* For future use

* InternalVersion = 1519 (force retest).

Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>
2020-12-16 17:07:42 -03:00
gdkchanandGitHub 47ba81c661 Fix pre-allocator shift instruction copy on a specific case (#1752)
* Fix pre-allocator shift instruction copy on a specific case

* Fix to make shift use int rather than long for constants
2020-12-14 17:56:07 -03:00
gdkchanandGitHub c8bb3cc50e Fix register read after write on STREX implementation (#1801)
* Fix register read after write on STREX implementation

* PTC version update
2020-12-13 12:19:38 -03:00
gdkchanandGitHub 19d18662ea Correct type of executable sizes (#1802) 2020-12-13 08:30:27 +01:00
gdkchanandGitHub ef157bbe26 Remove inexistent buffer from GetNintendoAccountUserResourceCacheForApplication (#1809) 2020-12-12 22:10:12 +11:00
gdkchanandGitHub 74aa7b20be Rewrite size for fixed size buffers (#1808) 2020-12-12 14:06:20 +11:00
gdkchanandGitHub 48278905d1 Rewrite scheduler context switch code (#1786)
* Rewrite scheduler context switch code

* Fix race in UnmapIpcRestorePermission

* Fix thread exit issue that could leave the scheduler in a invalid state

* Change context switch method to not wait on guest thread, remove spin wait, use SignalAndWait to pass control

* Remove multi-core setting (it is always on now)

* Re-enable assert

* Remove multicore from default config and schema

* Fix race in KTimeManager
2020-12-09 19:20:05 -03:00
gdkchanandGitHub 1b053d2222 Close audio WorkBuffer transfer memory handle (#1770) 2020-12-02 21:58:20 +01:00
gdkchanandGitHub f7617cae12 Create a single guest process per IPC message processor (#1769) 2020-12-02 13:14:44 +01:00
cf6cd71488 IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel (#1458)
* IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel

* Fix for applet transfer memory + some nits

* Keep handles if possible to avoid server handle table exhaustion

* Fix IPC ZeroFill bug

* am: Correctly implement CreateManagedDisplayLayer and implement CreateManagedDisplaySeparableLayer

CreateManagedDisplaySeparableLayer is requires since 10.x+ when appletResourceUserId != 0

* Make it exit properly

* Make ServiceNotImplementedException show the full message again

* Allow yielding execution to avoid starving other threads

* Only wait if active

* Merge IVirtualMemoryManager and IAddressSpaceManager

* Fix Ro loading data from the wrong process

Co-authored-by: Thog <me@thog.eu>
2020-12-02 00:23:43 +01:00
gdkchanandGitHub 7f536b5a15 Do not perform layout conversion on buffer texture flushes (#1729) 2020-11-18 22:17:40 +01:00
gdkchanandGitHub eafee34fee Improvements with new .NET 5 functions or bugfixes (#1714)
* Improvements with new .NET 5 functions or bugfixes

* This no longer needs to be unsafe
2020-11-18 19:28:40 +01:00
gdkchanandGitHub 9435d62206 Simplify depth test state updates (#1695) 2020-11-17 23:20:17 +01:00
gdkchanandGitHub 5189a807c4 Fix buffer to texture copy with remap enabled (#1721) 2020-11-17 19:06:02 -03:00
gdkchanandGitHub 787e20937f Propagate zeta format properly (#1716) 2020-11-16 09:37:16 +01:00
gdkchanandGitHub 3c60d4b0ea Do not report unmapped pages as dirty (#1672)
* Do not report unmapped pages as dirty

* Make tests pass again

* PR feedback
2020-11-10 22:07:52 -03:00
gdkchanandGitHub c3d62bd078 Implement ATOM shader instruction (#1687)
* Implement ATOM shader instruction

* Fix reduction type decoding
2020-11-10 01:06:46 +01:00
gdkchanandGitHub 934a78005e Simplify logic for bindless texture handling (#1667)
* Simplify logic for bindless texture handling

* Nits
2020-11-09 19:35:04 -03:00
gdkchanandGitHub 8d168574eb Use explicit buffer and texture bindings on shaders (#1666)
* Use explicit buffer and texture bindings on shaders

* More XML docs and other nits
2020-11-08 12:10:00 +01:00
gdkchanandGitHub ce9105a130 Support single precision contants for double precision operations (#1673) 2020-11-06 18:54:13 +01:00
gdkchanandGitHub 24dbfc0fe6 Correct BPP of buffer to texture copies (#1670) 2020-11-06 18:37:05 +01:00
gdkchanandGitHub a89b81a812 Separate zeta from color formats (#1647) 2020-11-05 23:50:34 +01:00
gdkchanandGitHub 11a7c99764 Support 3D BC4 and BC5 compressed textures (#1655)
* Support 3D BC4 and BC5 compressed textures

* PR feedback

* Fix some typos
2020-11-01 15:32:53 -03:00
gdkchanandGitHub 6222f173f0 Fix compressed to non-compressed texture copy size (#1649) 2020-11-01 15:26:24 -03:00
gdkchanandGitHub 876fa656f6 Remove unused texture and sampler pool invalidation code (#1648) 2020-11-01 15:17:29 -03:00
gdkchanandGitHub 423da5cc91 Scale texture resolution before sending to backend (#1646)
* Work

* Propagate scale factor to copy temp. Not really needed, just here for consistency

* PR feedback
2020-10-29 22:57:34 +01:00
gdkchanandGitHub 0031edae27 Avoid sampler conflicts on bindless samplers with the same name (#1642) 2020-10-28 21:20:43 +01:00
gdkchanandGitHub c9841dab38 Fix vertex buffer handle null check (#1638) 2020-10-26 01:40:50 +01:00
gdkchanandGitHub 812e32f775 Fix transform feedback errors caused by host pause/resume and multiple uses (#1634)
* Fix transform feedback errors caused by host pause/resume

* Fix TFB being used as something else issue with copies

* This is supposed to be StreamCopy
2020-10-25 17:23:42 -03:00
gdkchanandGitHub cf0f0fc4e7 Improve the speed of redundant ASTC texture data updates (#1636) 2020-10-25 17:09:45 -03:00
gdkchanandGitHub 49f970d5bd Implement CAL and RET shader instructions (#1618)
* Add support for CAL and RET shader instructions

* Remove unused stuff

* Fix a bug that could cause the wrong values to be passed to a function

* Avoid repopulating function id dictionary every time

* PR feedback

* Fix vertex shader A/B merge
2020-10-25 17:00:44 -03:00
gdkchanandGitHub 973a615d40 Fix shader image load/store array index register (#1637)
* Fix shader image load/store array index register

* Y should come before the array index
2020-10-25 14:51:26 -03:00
gdkchanandGitHub 2f16491712 Get rid of Reflection.Emit dependency on CPU and Shader projects (#1626)
* Get rid of Reflection.Emit dependency on CPU and Shader projects

* Remove useless private sets

* Missed those due to the alignment
2020-10-21 09:13:44 -03:00
gdkchanandGitHub efa77a2415 Add missing null check on image binding (#1632) 2020-10-21 14:06:13 +02:00
gdkchanandGitHub 2dcc6333f8 Fix image binding format (#1625)
* Fix image binding format

* XML doc
2020-10-20 19:03:20 -03:00
gdkchanandGitHub 5264d55b39 Fix gl_in being used with built-in variables that are not per-vertex (#1624) 2020-10-17 10:16:40 +02:00
gdkchanandGitHub f02791b20c Fix LOP3 (cbuf) shader instruction encoding (#1616) 2020-10-13 19:33:04 -03:00
gdkchanandGitHub 329ba5b39b Fix incorrect GPU GL blend func values (#1612) 2020-10-13 14:45:41 +11:00
gdkchanandGitHub 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
gdkchanandGitHub 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
gdkchanandGitHub e4777717cd Implement LEA.HI shader instruction (#1609) 2020-10-12 21:46:04 -03:00
gdkchanandGitHub 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