Commit graph

46 commits

Author SHA1 Message Date
Unknown W. Brackets
147b81d6f7 x64jit: Add AVX/AVX2 encodings.
Also fix the FMA double ones, which were passing W wrongly.
2021-12-29 19:46:26 -08:00
Unknown W. Brackets
28cfbe0e5a samplerjit: Add an alternate profiling method.
This is more useful to group common operations together for profiling.
2021-12-29 07:11:39 -08:00
Unknown W. Brackets
3aedea89eb samplerjit: Correct level lookup offset. 2021-12-29 07:09:36 -08:00
Unknown W. Brackets
bf06342f9d samplerjit: Minor SSE4 optimizations.
These seem to be a bit faster.
2021-12-29 07:07:35 -08:00
Unknown W. Brackets
631706a8ba samplerjit: Set stackArgPos_ early.
Unfortunately, this has to match the value set lower...
2021-12-28 20:21:21 -08:00
Unknown W. Brackets
74eb450e76 samplerjit: Move texture function into jit.
Could do this also for nearest, might end up with a third set of functions
there for a direct sample lookup (for debug funcs.)
2021-12-28 17:52:17 -08:00
Unknown W. Brackets
940e6bb1d7 samplerjit: Lookup both mip tex values. 2021-12-28 16:22:54 -08:00
Unknown W. Brackets
6b55d328e5 samplerjit: Use regcache for linear filtering.
This makes it easier to reuse for mipmap filtering.
2021-12-28 15:37:25 -08:00
Unknown W. Brackets
cdf14c8579 samplerjit: Calculate mip level U/V/offsets.
Not actually doing the sampling for the second mip level in the single jit
pass yet, but close.
2021-12-28 14:12:58 -08:00
Unknown W. Brackets
a4558a5736 samplerjit: Take texptr/bufw as arrays.
Prep for moving mip map sampling into linear.
2021-12-28 12:04:16 -08:00
Unknown W. Brackets
4864850b3b samplerjit: Handle mipmap width/height in S/T calc. 2021-12-28 11:29:29 -08:00
Unknown W. Brackets
a84accf713 samplerjit: Move S/T calculation into jit.
Gives a pretty decent 5-10% improvement in many places.
2021-12-28 09:58:23 -08:00
Unknown W. Brackets
476dfdf731 samplerjit: Add more bits for S/T, skip multiply.
For now, we're not using those other bits yet.
2021-12-27 18:24:37 -08:00
Unknown W. Brackets
75f105f84b softgpu: Make linear filtering more accurate.
This matches tests for various u/v offsets and x/y subpixel offsets.
Mipmaps are probably still wrong.
2021-12-27 11:37:32 -08:00
Unknown W. Brackets
3cd19b02ac samplerjit: Handle unswizzled offsets too. 2021-12-27 11:37:32 -08:00
Unknown W. Brackets
820361f34b samplerjit: Calculate texel byte offset as vector. 2021-12-27 11:37:32 -08:00
Unknown W. Brackets
4d6a2f3919 samplerjit: Blend linear using integers. 2021-12-27 11:37:32 -08:00
Unknown W. Brackets
6f4e735757 samplerjit: Accumulate results in an XMM. 2021-12-27 11:37:32 -08:00
Unknown W. Brackets
b00a66e34c samplerjit: Pass u/v coords as vector. 2021-12-27 11:37:32 -08:00
Unknown W. Brackets
b3cd135000 samplerjit: Fix DXT1/DXT5 register releasing.
Oops, broke this while refactoring.
2021-12-09 08:17:29 -08:00
Unknown W. Brackets
823c4adb15 softgpu: Keep arguments in vectors for sampling. 2021-12-04 15:45:06 -08:00
Unknown W. Brackets
d7c25b3e7c samplerjit: Refactor nearest using reg cache. 2021-12-04 13:04:53 -08:00
Unknown W. Brackets
932481d3cd softjit: Minor tweak to reg order for XCHG.
It's easier to use it in these places, but seems it stalls longer on the
dest reg.
2021-11-26 09:30:47 -08:00
Unknown W. Brackets
876c8cd368 softgpu: Fix PixelFuncID size.
Oops, can't use unions in bitfields.  Also improve typesafety.
2021-11-21 09:40:13 -08:00
Unknown W. Brackets
08816a544d softgpu: Implement DXT5 in samplerx86. 2021-09-12 17:17:09 -07:00
Unknown W. Brackets
c4de5bfb9f softgpu: Implement DXT3 in samplerx86. 2021-09-12 14:53:55 -07:00
Unknown W. Brackets
ee9d19430f softgpu: Implement DXT1 decoding in samplerx86. 2021-09-12 13:57:28 -07:00
Henrik Rydgård
c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Unknown W. Brackets
7910b4029a arm64jit: Track writable and non-writable pointers.
Switch uses different memory regions.  We can handle this, might as well
cleanup some const abuse.
2020-05-17 00:15:12 -07:00
aliaspider
17259b87ea softgpu: remove RIP addressing from SamplerX86 2018-05-04 17:37:46 +01:00
Henrik Rydgård
22e65ba80d Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11 2017-08-31 01:14:51 +02:00
Henrik Rydgård
8d0498303a Fix a PIC compliance bug in the VFPU. Comment other cases properly (for easy searching). 2017-08-29 11:45:12 +02:00
Unknown W. Brackets
41c378ec71 SoftGPU: Fix separate mip cluts in linear jit. 2017-06-01 21:34:49 -07:00
Unknown W. Brackets
fdf5f2ab54 SoftGPU: Support separate mip CLUTs with linear. 2017-05-30 22:57:46 -07:00
Unknown W. Brackets
cb3db559bd SoftGPU: Jit the linear sampling too.
For now, just reducing overhead.  Could be smarter.
2017-05-30 22:57:46 -07:00
Unknown W. Brackets
fa0ded4a76 SoftGPU: Reduce sampler id fuzz. 2017-05-30 22:57:45 -07:00
Unknown W. Brackets
c05ecfc6f1 SoftGPU: Implement separate CLUT in samplerjit. 2017-05-30 22:57:44 -07:00
Unknown W. Brackets
ffcfa0a824 SoftGPU: Specialize CLUT4 jit.
This version is a bit faster and cleaner.
2017-05-30 22:57:44 -07:00
Unknown W. Brackets
9a82ae3425 SoftGPU: Reduce overhead in sampler jit. 2017-05-30 22:57:43 -07:00
Unknown W. Brackets
744736b926 SoftGPU: Jit 16 bit texel decode. 2017-05-30 22:57:42 -07:00
Unknown W. Brackets
cf32949183 SoftGPU: Jit CLUT lookup. 2017-05-30 22:57:41 -07:00
Unknown W. Brackets
a8a6b2cd8a SoftGPU: Jit swizzled texel lookup. 2017-05-30 22:57:40 -07:00
Unknown W. Brackets
5491e1dbbb SoftGPU: Jit texel fetch for non-clut/non-swizzle. 2017-05-30 22:57:39 -07:00
Unknown W. Brackets
fd4c64d43d SoftGPU: Refactor out texture format logic.
This could actually be shared, nothing x86 specific...
2017-05-30 22:57:38 -07:00
Unknown W. Brackets
94920ec156 SoftGPU: Implement basic jit structure. 2017-05-30 22:57:38 -07:00
Unknown W. Brackets
1b491fe156 SoftGPU: Stub a jit for texel fetch. 2017-05-30 22:57:30 -07:00