ReinUsesLisp
9fe3f3a100
shader_ir: Remove F4 prefix to texture operations
...
This was originally included because texture operations returned a vec4.
These operations now return a single float and the F4 prefix doesn't
mean anything.
2019-02-07 17:36:46 -03:00
ReinUsesLisp
31305cad93
shader_ir: Clean texture management code
...
Previous code relied on GLSL parameter order (something that's always
ill-formed on an IR design). This approach passes spatial coordiantes
through operation nodes and array and depth compare values in the the
texture metadata. It still contains an "extra" vector containing generic
nodes for bias and component index (for example) which is still a bit
ill-formed but it should be better than the previous approach.
2019-02-07 00:46:13 -03:00
bunnei
6f3f5f5d99
Merge pull request #2083 from ReinUsesLisp/shader-ir-cbuf-tracking
...
shader/track: Add a more permissive global memory tracking
2019-02-06 21:56:14 -05:00
bunnei
07e83ca08b
gl_rasterizer_cache: Mark surface copy destinations as modified.
2019-02-06 21:54:25 -05:00
bunnei
4e28975608
gl_rasterizer: Implement a more accurate fermi 2D copy.
...
- This is a blit, use the blit registers.
2019-02-06 21:54:21 -05:00
bunnei
b214b091ef
Merge pull request #2091 from FearlessTobi/port-4603
...
Port citra-emu/citra#4603 : "gdbstub: only let Execute breakpoints write/restore BKPT opcodes into target memory"
2019-02-06 21:51:46 -05:00
ReinUsesLisp
0726b490dd
cmake: Fix title bar issue
2019-02-06 22:23:41 -03:00
Frederic L
bd216cd3cb
gl_shader_disk_cache: Check LZ4 size limit
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06 22:23:41 -03:00
Frederic L
39627da4a9
gl_shader_disk_cache: Consider compressed size zero as an error
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06 22:23:41 -03:00
Frederic L
bec5eeec31
cmake: Use CMAKE_COMMAND instead of "cmake"
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06 22:23:41 -03:00
ReinUsesLisp
8e8b793a51
gl_shader_disk_cache: Use unordered containers
2019-02-06 22:23:41 -03:00
ReinUsesLisp
6609f2a614
gl_shader_cache: Fixup GLSL unique identifiers
2019-02-06 22:23:40 -03:00
ReinUsesLisp
471ebf0757
loading_screen: Unchunk progress bar
2019-02-06 22:23:40 -03:00
ReinUsesLisp
f1e717fbee
gl_shader_cache: Link loading screen with disk shader cache load
2019-02-06 22:23:40 -03:00
ReinUsesLisp
66a3760a71
gl_shader_cache: Set GL_PROGRAM_SEPARABLE to dumped shaders
...
i965 (and probably all mesa drivers) require GL_PROGRAM_SEPARABLE when using
glProgramBinary. This is probably required by the standard but it's ignored by
permisive proprietary drivers.
2019-02-06 22:23:40 -03:00
ReinUsesLisp
ea2ce59743
gl_shader_disk_cache: Pass core system as argument and guard against games without title ids
2019-02-06 22:23:40 -03:00
ReinUsesLisp
f9bcb4e842
gl_shader_disk_cache: Guard reads and writes against failure
2019-02-06 22:23:40 -03:00
ReinUsesLisp
720c2456f4
gl_shader_disk_cache: Address miscellaneous feedback
2019-02-06 22:23:40 -03:00
ReinUsesLisp
fcf98dc3f7
gl_shader_disk_cache: Pass return values returning instead of by parameters
2019-02-06 22:23:40 -03:00
ReinUsesLisp
e2f4c2b9d9
gl_shader_disk_cache: Compress program binaries using LZ4
2019-02-06 22:23:39 -03:00
ReinUsesLisp
92682d3bfa
gl_shader_disk_cache: Compress GLSL code using LZ4
2019-02-06 22:23:39 -03:00
ReinUsesLisp
d83818d30a
gl_shader_disk_cache: Save GLSL and entries into the precompiled file
2019-02-06 22:23:39 -03:00
ReinUsesLisp
1342998379
settings: Hide shader cache behind a setting
2019-02-06 22:20:57 -03:00
ReinUsesLisp
8b1a7aa19d
gl_shader_disk_cache: Invalidate shader cache changes with CMake hash
2019-02-06 22:20:57 -03:00
ReinUsesLisp
bb69f9fb7a
gl_shader_cache: Refactor to support disk shader cache
2019-02-06 22:20:57 -03:00
ReinUsesLisp
a931bb68cd
gl_shader_disk_cache: Add transferable cache invalidation
2019-02-06 22:20:57 -03:00
ReinUsesLisp
b33860b218
gl_shader_disk_cache: Add precompiled load
2019-02-06 22:20:57 -03:00
ReinUsesLisp
c0da61936c
gl_shader_disk_cache: Add precompiled save
2019-02-06 22:20:57 -03:00
ReinUsesLisp
550111b091
gl_shader_disk_cache: Add transferable load
2019-02-06 22:20:57 -03:00
ReinUsesLisp
7012b1a5a4
gl_shader_disk_cache: Add transferable stores
2019-02-06 22:20:57 -03:00
ReinUsesLisp
ac7a6ef85f
gl_shader_disk_cache: Add ShaderDiskCacheOpenGL class and helpers
2019-02-06 22:20:57 -03:00
ReinUsesLisp
09225145c9
gl_shader_disk_cache: Add file and move BaseBindings declaration
2019-02-06 22:20:57 -03:00
ReinUsesLisp
658959673b
gl_shader_decompiler: Remove name entries
2019-02-06 22:20:57 -03:00
ReinUsesLisp
4eb946829d
gl_shader_util: Add parameter to handle retrievable programs
2019-02-06 22:20:57 -03:00
ReinUsesLisp
5bed286abf
rasterizer_interface: Add disk cache entry for the rasterizer
2019-02-06 22:20:57 -03:00
ReinUsesLisp
f75174d195
file_util: Add shader directory
2019-02-06 22:20:57 -03:00
ReinUsesLisp
0d6369989d
shader_decode: Implement LDG and basic cbuf tracking
2019-02-06 22:20:57 -03:00
bunnei
af54c6770a
Merge pull request #2042 from ReinUsesLisp/nouveau-tex
...
maxwell_3d: Allow texture handles with TIC id zero
2019-02-06 20:19:20 -05:00
bunnei
13f3423d68
Merge pull request #2071 from ReinUsesLisp/dsa-texture
...
gl_rasterizer: Use DSA for textures and move swizzling to texture state
2019-02-06 20:17:59 -05:00
Dimitri ALBORA
c7d6afc04a
gdbstub: only let Execute breakpoints write/restore BKPT opcodes into target memory
2019-02-06 19:07:35 +01:00
bunnei
784bb782f5
Merge pull request #2057 from FearlessTobi/port-4586
...
Port citra-emu/citra#4586 : "Use QPixmap/QIcon for background color selection button"
2019-02-06 12:37:57 -05:00
bunnei
4e72e46332
Merge pull request #2086 from FearlessTobi/port-4583
...
Port citra-emu/citra#4583 : "citra_qt: Fix saving screenshot when no file extension is provided"
2019-02-06 12:33:35 -05:00
bunnei
ed8b02bf5f
Merge pull request #2087 from lioncash/const
...
service/nvflinger, service/vi: Improve error case handling
2019-02-06 12:33:13 -05:00
bunnei
a62bb70902
Merge pull request #2088 from jroweboy/h
...
QT: Fix the loading screen 'H' switch logo to not glitch out
2019-02-05 21:06:39 -05:00
James Rowe
4d5b53faab
QT: Fix the loading screen 'H' switch logo to not glitch out
2019-02-05 18:24:15 -07:00
Lioncash
ac9fcf2ca2
service/nvflinger,service/vi: Handle failure cases with exposed API
...
Converts many of the Find* functions to return a std::optional<T> as
opposed to returning the raw return values directly. This allows
removing a few assertions and handles error cases like the service
itself does.
2019-02-05 18:03:28 -05:00
bunnei
8f02e0554c
Merge pull request #2085 from ReinUsesLisp/cube-minus-one
...
video_core/texture: Fix BitField size for depth_minus_one
2019-02-05 17:15:26 -05:00
xperia64
a65c9b1f55
Fix crash when no files are selected
2019-02-05 22:40:23 +01:00
xperia64
1fd1f7a053
Add file extension to screenshot filename if not provided
2019-02-05 22:31:37 +01:00
Lioncash
49a28d52da
service/nvflinger: Mark FindVsyncEvent() as a const member function
...
This member function doesn't actually modify instance state, so it can
be marked as a const member function.
2019-02-05 15:57:29 -05:00
Lioncash
797fbcc6dd
service/nvflinger: Rename GetVsyncEvent() to FindVsyncEvent()
...
This was missed within #2075 . Renames the member function to make it
consistent with the rest of the Find* functions.
2019-02-05 15:55:18 -05:00
bunnei
38df722dc7
Merge pull request #2081 from ReinUsesLisp/lmem-64
...
shader_ir/memory: Add LD_L 64 bits loads
2019-02-05 09:17:48 -05:00
ReinUsesLisp
c1e8fe0067
video_core/texture: Fix BitField size for depth_minus_one
2019-02-05 04:32:06 -03:00
bunnei
66514e4190
Merge pull request #2082 from FernandoS27/txq-stl
...
Fix TXQ not using the component mask.
2019-02-04 20:22:32 -05:00
Mat M
6506dbc577
Update src/video_core/engines/shader_bytecode.h
...
Co-Authored-By: FernandoS27 <fsahmkow27@gmail.com>
2019-02-03 21:27:26 -04:00
Fernando Sahmkow
4133c86d71
Fix TXQ not using the component mask.
2019-02-03 18:17:18 -04:00
ReinUsesLisp
a6c3180b68
shader_ir/memory: Add ST_L 64 and 128 bits stores
2019-02-03 19:08:10 -03:00
ReinUsesLisp
13b83e6e0f
shader/track: Search inside of conditional nodes
...
Some games search conditionally use global memory instructions. This
allows the heuristic to search inside conditional nodes for the source
constant buffer.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
92c948999b
shader_ir: Rename BasicBlock to NodeBlock
...
It's not always used as a basic block. Rename it for consistency.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
e3c0f29a4d
shader_ir: Pass decoded nodes as a whole instead of per basic blocks
...
Some games call LDG at the top of a basic block, making the tracking
heuristic to fail. This commit lets the heuristic the decoded nodes as a
whole instead of per basic blocks.
This may lead to some false positives but allows it the heuristic to
track cases it previously couldn't.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
af1543712d
video_core: Assert on invalid GPU to CPU address queries
2019-02-03 04:58:40 -03:00
ReinUsesLisp
c73b44fc35
maxwell_3d: Allow sampler handles with TSC id zero
2019-02-03 04:58:40 -03:00
ReinUsesLisp
04fe4a72b9
maxwell_3d: Allow texture handles with TIC id zero
...
Also remove "enabled" field from Tegra::Texture::FullTextureInfo because
it would become unused.
2019-02-03 04:58:24 -03:00
ReinUsesLisp
36ccfac47b
memory_manager: Check for reserved page status
2019-02-03 04:58:24 -03:00
ReinUsesLisp
0b57f33fdf
shader_ir/memory: Add LD_L 128 bits loads
2019-02-03 00:35:34 -03:00
ReinUsesLisp
5ae8a056fe
shader_bytecode: Rename BytesN enums to BitsN
2019-02-03 00:25:40 -03:00
ReinUsesLisp
a8cbcb1210
shader_ir/memory: Add LD_L 64 bits loads
2019-02-03 00:25:40 -03:00
bunnei
896b6769d2
Merge pull request #2074 from ReinUsesLisp/shader-ir-unify-offset
...
shader_ir: Unify constant buffer offset values
2019-02-01 13:24:04 -05:00
bunnei
4f69ee9076
Merge pull request #2073 from lioncash/opus
...
hwopus: Implement DecodeInterleaved (the newest variant)
2019-02-01 13:02:16 -05:00
bunnei
26a37f8ae9
Merge pull request #2067 from ReinUsesLisp/workaround-fb
...
gl_rasterizer: Workaround invalid zeta clears
2019-02-01 12:50:09 -05:00
bunnei
3913faf1c0
Merge pull request #2078 from lioncash/timer
...
kernel: Remove the Timer class
2019-02-01 12:49:16 -05:00
ReinUsesLisp
14098c39af
rasterizer_interface: Remove unused AccelerateFill operation
2019-02-01 03:02:22 -03:00
ReinUsesLisp
74a039d0bc
video_core: Remove unused Fill surface type
2019-02-01 02:57:47 -03:00
Lioncash
c6d2828c74
kernel: Remove the Timer class
...
A holdover from citra, the Horizon kernel on the switch has no
prominent kernel object that functions as a timer. At least not
to the degree of sophistication that this class provided.
As such, this can be removed entirely. This class also wasn't used at
all in any meaningful way within the core, so this was just code sitting
around doing nothing. This also allows removing a few things from the
main KernelCore class that allows it to use slightly less resources
overall (though very minor and not anything really noticeable).
2019-01-31 23:05:15 -05:00
bunnei
08a12177f8
Merge pull request #2072 from lioncash/service
...
service: Update function tables
2019-01-31 15:19:44 -05:00
bunnei
b36d0deee7
Merge pull request #2077 from lioncash/virt
...
kernel/wait_object: Devirtualize functions related to manipulating the thread list directly
2019-01-31 15:19:02 -05:00
bunnei
0e1ad2492a
Merge pull request #2075 from lioncash/find
...
service/nvflinger: Minor renaming changes
2019-01-31 11:08:36 -05:00
ReinUsesLisp
b68fd9e6e9
gl_rasterizer_cache: Fixup test clause
2019-01-30 19:10:35 -03:00
Mat M
6ebdc75cce
gl_rasterizer_cache: Guard clause swizzle testing
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-01-30 19:10:35 -03:00
ReinUsesLisp
3dfcff175f
gl_state: Remove texture target tracking
2019-01-30 19:10:35 -03:00
ReinUsesLisp
412d59512a
gl_rasterizer_cache: Move swizzling to textures instead of state
2019-01-30 19:10:35 -03:00
ReinUsesLisp
5ab4113388
gl_state: Use DSA and multi bind to update texture bindings
2019-01-30 19:10:11 -03:00
ReinUsesLisp
c6c0c7947d
gl_rasterizer: Use DSA for textures
2019-01-30 19:10:11 -03:00
Lioncash
9399a2efe5
kernel/wait_object: Devirtualize functions related to manipulating the thread list directly
...
No inheritors of the WaitObject class actually make use of their own
implementations of these functions, so they can be made non-virtual.
It's also kind of sketchy to allow overriding how the threads get added
to the list anyways, given the kernel itself on the actual hardware
doesn't seem to customize based off this.
2019-01-30 12:50:37 -05:00
Lioncash
84f0a76c97
kernel/timer: Remove unnecessary WakeupAllWaitingThreads() override
...
This implementation just calls the base class variant of the function,
so this isn't necessary.
2019-01-30 12:45:00 -05:00
Lioncash
53c17e5dca
kernel/readable_event: Remove unnecessary WakeupAllWaitingThreads() override
...
This just calls the base variant of the function, so it can be removed.
2019-01-30 12:45:00 -05:00
Hexagon12
874de50bb4
Merge pull request #2076 from lioncash/enc
...
video_core/dma_pusher: Silence C4828 warnings
2019-01-30 19:42:15 +02:00
Lioncash
82a466695f
video_core/dma_pusher: Silence C4828 warnings
...
This was previously causing:
warning C4828: The file contains a character starting at offset 0xa33
that is illegal in the current source character set (codepage 65001).
warnings on Windows when compiling yuzu.
2019-01-30 12:36:31 -05:00
bunnei
6fb1297325
Merge pull request #1485 from FernandoS27/render-info
...
Add more info into textures' object labels
2019-01-30 12:35:56 -05:00
Lioncash
3e78328569
hwopus: Implement DecodeInterleaved
...
This functions almost identically to DecodeInterleavedWithPerfOld,
however this function also has the ability to reset the decoder context.
This is documented as a potentially desirable thing in the libopus
manual in some circumstances as it says for the OPUS_RESET_STATE ctl:
"This should be called when switching streams in order to prevent the
back to back decoding from giving different result from one at a time
decoding."
2019-01-30 11:35:41 -05:00
Lioncash
7ba76e0c34
service/nvflinger: Make FindBufferQueueId() a const member function
...
This member function doesn't actually modify instance state, so it can
be const-qualified.
2019-01-30 11:14:08 -05:00
Lioncash
f57dd1bae3
service/nvflinger: Rename Get prefix on function to Find
...
This more accurately describes what the function is actually attempting
to do (it's not a simple trivial getter).
2019-01-30 11:11:32 -05:00
ReinUsesLisp
12fbe5dcf8
shader_ir: Unify constant buffer offset values
...
Constant buffer values on the shader IR were using different offsets if
the access direct or indirect. cbuf34 has a non-multiplied offset while
cbuf36 does. On shader decoding this commit multiplies it by four on
cbuf34 queries.
2019-01-30 02:45:50 -03:00
Lioncash
2031c390f0
hwopus: Deduplicate the decoding code within DecodeInterleavedOld and DecodeInterleavedWithPerfOld
...
Keeps the logic in one spot for use by both functions.
2019-01-29 22:53:35 -05:00
Lioncash
bed6adebc3
hwopus: Replace std::optional<std::reference_wrapper<u64>> with u64*
...
This doesn't really offer anything over the use of a direct pointer, so
we can just use that instead.
2019-01-29 22:53:35 -05:00
Lioncash
023e37145a
hwopus: Mark local variables as const where applicable
...
Makes non-mutable state more explicit.
2019-01-29 22:53:35 -05:00
Lioncash
449c62df51
hwopus: Fill in the rest of the unknown service function names
...
Filled in via information provided by SwitchBrew.
2019-01-29 22:53:34 -05:00
Lioncash
136b8812a6
service/ns: Update function tables
...
Updates function tables based off information provided by SwitchBrew
2019-01-29 22:50:26 -05:00
Lioncash
0b8ce4befe
service/ncm: Update function tables
...
Updates function tables based off information provided by SwitchBrew
2019-01-29 22:50:26 -05:00
Lioncash
8ed3c04db3
service/audio: Update function tables
...
Updates function tables based off information provided by SwitchBrew.
2019-01-29 22:50:26 -05:00