bunnei
9ffdef96d9
kernel: transfer_memory: Properly reserve and reset memory region.
2020-02-05 23:06:54 -05:00
Zach Hilman
a0400ebc19
wait_object: Make wait behavior only require one object to signal.
...
- This was holdover from citra.
2020-02-05 23:06:53 -05:00
bunnei
900b370e13
am: Correct IPC object count mismatch.
2020-02-05 23:06:53 -05:00
bunnei
141c06ca8b
services: am: Clear events on PopOutData and PopInteractiveOutData.
2020-02-05 23:06:52 -05:00
bunnei
b10a96347f
am: Refactor IStorage interface.
2020-02-05 23:06:52 -05:00
bunnei
0d376ae49e
applets: software_keyboard: Signal state change on end of interactive session.
2020-02-05 23:06:51 -05:00
bunnei
b1bd8d852a
applets: software_keyboard: Minor cleanup.
2020-02-05 23:06:50 -05:00
bunnei
7bdaae11ac
services: prepo: Fix IPC interface with SaveReport/SaveReportWithUser.
2020-02-05 22:52:35 -05:00
bunnei
bc76fe3100
hle_ipc: Add error checking to read/write buffer access.
2020-02-05 22:52:35 -05:00
ReinUsesLisp
389cb51a33
shader/decode: Fix constant buffer offsets
...
Some instances were using cbuf34.offset instead of cbuf34.GetOffset().
This returned the an invalid offset. Address those instances and rename
offset to "shifted_offset" to avoid future bugs.
2020-02-05 12:19:09 -03:00
ReinUsesLisp
48a1e6461b
maxwell_to_gl: Implement R8G8_USCALED
2020-02-04 21:32:36 -03:00
ReinUsesLisp
e98ec35845
maxwell_to_gl: Reduce unimplemented formats to LOG_ERROR
2020-02-04 21:32:08 -03:00
ReinUsesLisp
c2ecaf376b
vk_rasterizer: Use noexcept variants of std::bitset
...
Removes bounds checking from "texceptions" instances.
2020-02-04 18:04:24 -03:00
bunnei
a683c3c57c
Merge pull request #3357 from ReinUsesLisp/bfi-rc
...
shader/bfi: Implement register-constant buffer variant
2020-02-04 15:14:13 -05:00
ReinUsesLisp
3c7276cd1a
gl_rasterizer: Implement GL_POINT_SPRITE
...
OpenGL core defaults to GL_POINT_SPRITE, meanwhile on OpenGL
compatibility we have to explicitly enable it. This fixes
gl_PointCoord's behaviour.
2020-02-04 15:19:45 -03:00
bunnei
223e535f65
Merge pull request #3356 from ReinUsesLisp/fcmp
...
shader/arithmetic: Implement FCMP
2020-02-04 11:36:59 -05:00
bunnei
6c7f2a9d45
Merge pull request #3360 from CJBok/statusbar-buttons
...
GUI: Togglable graphics settings buttons in status bar
2020-02-03 16:57:18 -05:00
bunnei
d02c1c1f75
Merge pull request #3337 from ReinUsesLisp/vulkan-staged
...
yuzu: Implement Vulkan frontend
2020-02-03 16:56:25 -05:00
Lioncash
ba28438e61
input_common/udp: Ensure that UDP is shut down within Shutdown()
...
Previously the UDP backend would never actually get shut down.
2020-02-03 09:29:15 -05:00
Lioncash
f693c966a0
input_common/udp: Add missing override specifiers
...
Prevents trivial warnings and ensures interfaces are properly
maintained between the base class.
2020-02-03 09:26:53 -05:00
Lioncash
02fbec1123
input_common/udp: std::move SocketCallback instances where applicable
...
std::function is allowed to heap allocate if the size of the captures
associated with each lambda exceed a certain threshold. This prevents
potentially unnecessary reallocations from occurring.
2020-02-03 09:24:05 -05:00
Lioncash
cf11ee1b0d
input_common/udp: std::move shared_ptr within Client constructor
...
Gets rid of a trivially avoidable atomic reference count increment and
decrement.
2020-02-03 09:21:46 -05:00
Lioncash
8e230f3e37
udp/client: Replace deprecated from_string() call with make_address_v4()
...
Future-proofs code if boost is ever updated.
2020-02-03 09:20:40 -05:00
Lioncash
e397a2145c
input_common/udp: Silence -Wreorder warning for Socket
...
Amends the constructor initializer list to specify the order of its
elements in the same order that initialization would occur.
2020-02-03 09:15:32 -05:00
Lioncash
2ba97142ab
input_common/udp: Remove unnecessary inclusions
2020-02-03 09:13:40 -05:00
Lioncash
5da05e3128
input_common/udp: Add missing header guard
2020-02-03 09:09:06 -05:00
ReinUsesLisp
1eef76d7b6
maxwell_3d: Fix stencil back mask
2020-02-02 17:50:46 -03:00
ReinUsesLisp
4f5791e529
shader: Remove curly braces initializers on shared pointers
2020-02-01 22:52:10 -03:00
bunnei
1de7f0beeb
Merge pull request #3282 from FernandoS27/indexed-samplers
...
Partially implement Indexed samplers in general and specific code in GLSL
2020-02-01 20:41:40 -05:00
ReinUsesLisp
62ab366971
shader/shift: Implement SHIFT_RIGHT_{IMM,R}
...
Shifts a pair of registers to the right and returns the low register.
2020-02-01 21:20:02 -03:00
ReinUsesLisp
0ff3ea3188
shader/shift: Implement SHF_LEFT_{IMM,R}
...
Shifts a pair of registers to the left and returns the high register.
2020-02-01 21:19:44 -03:00
bunnei
696e97ae4a
Merge pull request #3268 from CJBok/deadzone
...
GUI: Deadzone controls for sdl engine at configuration input
2020-02-01 16:35:15 -05:00
bunnei
0058ae07f7
Merge pull request #3284 from CJBok/hid-fix
...
hid: Fix analog sticks directional states
2020-02-01 14:02:41 -05:00
bunnei
d1df3ef078
Merge pull request #3364 from lioncash/thread
...
core/arm: Remove usage of global GetCurrentThread()
2020-01-31 11:13:24 -05:00
bunnei
c4ab8cd693
Merge pull request #3363 from lioncash/unique_ptr
...
kernel/physical_core: Make use of std::unique_ptr instead of std::shared_ptr
2020-01-30 23:33:02 -05:00
bunnei
72a8ed19c3
Revert "system_archive: Fix Korean and Chinese fonts"
2020-01-30 22:02:15 -05:00
Lioncash
11c5ae60e6
core/arm: Remove usage of global GetCurrentThread()
...
Now both CPU backends go through their referenced system instance to
obtain the current thread.
2020-01-30 18:52:25 -05:00
Lioncash
371f3ecf5d
kernel/physical_core: Make use of std::unique_ptr
...
shared_ptr was used in 8eb175481c due to a
misunderstanding of how the language generates move constructors and
move assignment operators.
If a destructor is user-provided, then the compiler won't generate the
move constructor and move assignment operators by default--they must be
explicitly opted into.
The reason for the compilation errors is due to the fact that the
language will fall back to attempting to use the copy constructor/copy
assignment operators if the respective move constructor or move
assignment operator is unavailable.
Given that we explicitly opt into them now, the the move constructor and
move assignment operators will be generated as expected.
2020-01-30 18:42:40 -05:00
Lioncash
6bc28ed1c8
core/cpu_manager: Remove unused includes
...
Nothing from these headers are used within this source file, so we can
remove them.
2020-01-30 18:30:57 -05:00
Lioncash
379194237d
kernel/physical_core: Remove unused kernel reference member variable
...
This isn't used within the class, so it can be removed to simplify the
overall interface.
While we're in the same area, we can simplify a unique_ptr reset() call.
2020-01-30 18:29:57 -05:00
bunnei
0edc152d5a
Merge pull request #3353 from FernandoS27/aries
...
System: Refactor CPU Core management and move ARMInterface and Schedulers to Kernel
2020-01-30 18:13:59 -05:00
bunnei
40a54f6de7
Merge pull request #3151 from FearlessTobi/fix-korean
...
system_archive: Fix Korean and Chinese fonts
2020-01-30 15:09:55 -05:00
bunnei
74aeae1ae7
Merge pull request #3347 from ReinUsesLisp/local-mem
...
shader/memory: Implement LDL.S16, LDS.S16, STL.S16 and STS.S16
2020-01-30 10:59:52 -05:00
ReinUsesLisp
535a9fcf44
gl_rasterizer: Fix instanced draw arrays
...
glDrawArrays was being used when the draw had a base instance specified.
This commit removes the draw parameters abstraction and fixes the
mentioned issue.
2020-01-30 02:22:00 -03:00
ReinUsesLisp
066c63571b
yuzu/bootmanager: Define Vulkan widget only when enabled
2020-01-29 19:20:12 -03:00
bunnei
04b8af9134
Merge pull request #3350 from ReinUsesLisp/atom
...
shader/memory: Implement ATOM.ADD
2020-01-29 16:49:54 -05:00
ReinUsesLisp
85f666c066
yuzu_cmd: Fix memcpy on Vulkan handlers
2020-01-29 17:53:11 -03:00
ReinUsesLisp
48cb021c34
yuzu: Implement Vulkan frontend
...
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
2020-01-29 17:53:11 -03:00
ReinUsesLisp
28e928197a
web_service/telemetry_json: Report USER_CONFIG
2020-01-29 17:53:11 -03:00
ReinUsesLisp
2ba5519371
settings: Add settings for graphics backend
2020-01-29 17:53:11 -03:00
ReinUsesLisp
e1da845841
core: Only wait for idle on gpu_core when it was initialized
...
This fixes crashes when a Vulkan device fails to initialize.
2020-01-29 17:53:11 -03:00
ReinUsesLisp
1d17aca3f5
shader/other: Fix skips for SYNC and BRK
2020-01-29 17:53:11 -03:00
ReinUsesLisp
1c642262eb
shader/other: Stub S2R LaneId
2020-01-29 17:53:11 -03:00
ReinUsesLisp
25fcf5704b
buffer_cache: Delay buffer destructions
...
Delay buffer destruction some extra frames to avoid destroying buffers
that are still being used from older frames. This happens on Nvidia's
driver with mailbox.
2020-01-29 17:53:11 -03:00
bunnei
b5b061381e
Merge pull request #3355 from ReinUsesLisp/break-down
...
texture_cache/surface_base: Fix layered break down
2020-01-29 12:29:56 -05:00
bunnei
208594da5b
Merge pull request #3358 from ReinUsesLisp/implicit-texture-cache
...
gl_texture_cache: Silence implicit sign cast warnings
2020-01-29 11:23:50 -05:00
CJBok
f75503d2ed
clang
2020-01-29 05:43:55 +01:00
CJBok
c42052c661
minor corrections
2020-01-29 00:02:28 +01:00
CJBok
4c58bca524
GUI: Togglable graphics settings buttons in status bar
2020-01-28 23:59:30 +01:00
bunnei
c9cfbc502b
Merge pull request #3359 from ReinUsesLisp/assert-point-size
...
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
2020-01-28 15:19:51 -05:00
ReinUsesLisp
1044f51a83
gl_shader_decompiler: Remove UNIMPLEMENTED for gl_PointSize
...
This was implemented by a previous commit and it's no longer required.
2020-01-28 16:32:30 -03:00
bunnei
c1b49469ef
Merge pull request #3354 from ReinUsesLisp/depth-stencil
...
gl_texture_cache: Properly implement depth/stencil sampling
2020-01-28 12:06:11 -05:00
ReinUsesLisp
68c9d670a1
gl_texture_cache: Silence implicit sign cast warnings
2020-01-27 20:59:11 -03:00
Fernando Sahmkow
8eb175481c
System: Address Feedback
2020-01-27 09:54:11 -04:00
ReinUsesLisp
ca61e82f85
shader/bfi: Implement register-constant buffer variant
...
It's the same as the variant that was implemented, but it takes the
operands from another source.
2020-01-27 01:20:38 -03:00
ReinUsesLisp
098218ff4c
shader/arithmetic: Implement FCMP
...
Compares the third operand with zero, then selects between the first and
second.
2020-01-27 01:15:44 -03:00
ReinUsesLisp
b3e4461606
texture_cache/surface_base: Fix layered break down
...
Layered break downs was passing "layer" as a "depth" parameter. This
commit addresses that.
2020-01-26 21:48:07 -03:00
ReinUsesLisp
dbb7b51943
gl_texture_cache: Properly implement depth/stencil sampling
...
This addresses the long standing issue of compatibility vs. core
profiles on OpenGL, properly implementing depth vs. stencil sampling
depending on the texture swizzle.
2020-01-26 21:44:08 -03:00
Fernando Sahmkow
e9b557b38e
System: Correct PrepareReschedule.
2020-01-26 14:32:50 -04:00
Fernando Sahmkow
3230cfebb7
Kernel: Remove a few global instances from the kernel.
2020-01-26 14:23:46 -04:00
Fernando Sahmkow
0a5e0d4777
Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.
...
This commit instends on better naming the new purpose of this classes.
2020-01-26 14:07:22 -04:00
Fernando Sahmkow
fb17429a0b
ArmInterface: Delegate Exclusive monitor factory to exclusive monitor interfasce.
2020-01-26 10:28:23 -04:00
ReinUsesLisp
0d8f0ad3b3
shader/memory: Implement ATOM.ADD
...
ATOM operates atomically on global memory. For now only add ATOM.ADD
since that's what was found in commercial games.
This asserts for ATOM.ADD.S32 (handling the others as unimplemented),
although ATOM.ADD.U32 shouldn't be any different.
This change forces us to change the default type on SPIR-V storage
buffers from float to uint. We could also alias the buffers, but it's
simpler for now to just use uint. While we are at it, abstract the code
to avoid repetition.
2020-01-26 01:54:24 -03:00
Fernando Sahmkow
1c2981f6da
Core: Refactor CPU Management.
...
This commit moves ARM Interface and Scheduler handling into the kernel.
2020-01-25 18:55:32 -04:00
Fernando Sahmkow
2e6a1b965d
Shader_IR: Address feedback.
2020-01-25 09:04:59 -04:00
ReinUsesLisp
0340f04b84
shader/memory: Implement STL.S16 and STS.S16
2020-01-25 03:16:10 -03:00
ReinUsesLisp
edd5e604be
shader/memory: Implement unaligned LDL.S16 and LDS.S16
2020-01-25 03:16:10 -03:00
ReinUsesLisp
851d3adc24
shader/memory: Move unaligned load/store to functions
2020-01-25 03:16:10 -03:00
ReinUsesLisp
cff97272d2
shader/memory: Implement LDL.S16 and LDS.S16
2020-01-25 03:15:55 -03:00
bunnei
ebb840daaf
bsd: Stub several more functions.
...
- Required for Little Town Hero to boot further.
2020-01-25 00:47:15 -05:00
bunnei
53184a16cc
Merge pull request #3343 from FearlessTobi/ui-tab
...
yuzu/configuration: create UI tab and move gamelist settings there
2020-01-25 00:40:13 -05:00
bunnei
b6e76fdeb1
Merge pull request #3326 from FearlessTobi/port-5039
...
Port citra-emu/citra#5039 : "common/logging: don't use regex for path trimming"
2020-01-24 20:59:57 -05:00
FearlessTobi
40c05f9028
Disable clang-format for font files
2020-01-24 23:54:19 +01:00
bunnei
b6a1315c24
Merge pull request #3344 from ReinUsesLisp/vk-botw
...
vk_shader_decompiler: Disable default values on unwritten render targets
2020-01-24 17:31:55 -05:00
Fernando Sahmkow
26b5aa702d
Shader_IR: Change name of TrackSampler function so it does not confuse with the type.
2020-01-24 16:44:48 -04:00
Fernando Sahmkow
8c800cf312
Shader_IR: Corrections, styling and extras.
2020-01-24 16:44:48 -04:00
Fernando Sahmkow
a0cd5fb25f
Shader_IR: Correct Custom Variable assignment.
2020-01-24 16:44:47 -04:00
Fernando Sahmkow
b6d3153e7e
Shader_IR: Propagate bindless index into the GL compiler.
2020-01-24 16:44:47 -04:00
Fernando Sahmkow
c066e472b9
Shader_IR: Implement Injectable Custom Variables to the IR.
2020-01-24 16:43:31 -04:00
Fernando Sahmkow
6d6a963173
GL Backend: Introduce indexed samplers into the GL backend
2020-01-24 16:43:31 -04:00
Fernando Sahmkow
123c7cf307
Shader_IR: deduce size of indexed samplers
2020-01-24 16:43:31 -04:00
Fernando Sahmkow
2b9a30d06b
Shader_IR: Setup Indexed Samplers on the IR
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
f93bff419e
Shader_IR: Implement initial code for tracking indexed samplers.
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
c0c5fa078b
Shader_IR: Address Feedback
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
5fb7881077
Shader_IR: Allow constant access of guest driver.
2020-01-24 16:43:30 -04:00
Fernando Sahmkow
c5fdcd7a2c
Shader_IR: Address Feedback
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
87546c5c19
Guest_driver: Correct compiling errors in GCC.
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
61d2053adb
Shader_IR: Store Bound buffer on Shader Usage
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
e9f3264c8d
GPU: Implement guest driver profile and deduce texture handler sizes.
2020-01-24 16:43:29 -04:00
Fernando Sahmkow
a402d6e870
Kernel: Implement Physical Core.
2020-01-24 15:38:20 -04:00
bunnei
0d6a9f7d6b
Merge pull request #3273 from FernandoS27/txd-array
...
Shader_IR: Implement TXD Array.
2020-01-24 14:02:40 -05:00
bunnei
97414178cb
Merge pull request #3340 from SciresM/pmdx
...
loader: provide default arguments (zero byte) to NSOs
2020-01-24 10:31:43 -05:00
ReinUsesLisp
84532ba55a
vk_shader_decompiler: Disable default values on unwritten render targets
...
Some games like The Legend of Zelda: Breath of the Wild assign
render targets without writing them from the fragment shader. This
generates Vulkan validation errors, so silence these I previously
introduced a commit to set "vec4(0, 0, 0, 1)" for these attachments. The
problem is that this is not what games expect. This commit reverts that
change.
2020-01-24 01:16:21 -03:00
FearlessTobi
30b4a50d29
audio_core: Switch to a faster interpolation technique
2020-01-24 00:38:22 +01:00
FearlessTobi
f857c56aee
yuzu/configuration: create UI tab and move gamelist settings there
2020-01-24 00:15:51 +01:00
BreadFish64
45e463971b
common/logging: don't use regex for path trimming
2020-01-23 23:08:05 +01:00
FearlessTobi
e0e3b5d899
Replace GetString with Get function
...
This should hopefully fix compilation errors.
2020-01-23 20:55:26 +01:00
FearlessTobi
e89cbc93dd
Address second part of review comments
2020-01-23 20:55:26 +01:00
FearlessTobi
af272d88d9
Address review comments
2020-01-23 20:55:26 +01:00
fearlessTobi
b2f53cceb6
Input: UDP Client to provide motion and touch controls
...
An implementation of the cemuhook motion/touch protocol, this adds the
ability for users to connect several different devices to citra to send
direct motion and touch data to citra.
Co-Authored-By: jroweboy <jroweboy@gmail.com>
2020-01-23 20:55:26 +01:00
bunnei
ad4f27978a
Merge pull request #3341 from bunnei/time-posix-myrule
...
service: time: Implement ToPosixTimeWithMyRule.
2020-01-23 12:04:01 -05:00
Fernando Sahmkow
9b89afce60
Merge pull request #3338 from ReinUsesLisp/no-fastmath
...
gl_shader_cache: Disable fastmath on Nvidia
2020-01-23 10:08:45 -04:00
bunnei
dcd1617ee2
service: time: Implement ToPosixTimeWithMyRule.
...
- Used by Pokemon Mystery Dungeon.
2020-01-22 23:20:19 -05:00
Michael Scire
56137d471a
loader: provide default arguments (zero byte) to NSOs
...
Certain newer unity games (Terraria, Pokemon Mystery Dungeon) require
that the argument region be populated. Failure to do so results in
an integer underflow in argument count, and eventually an unmapped
read at 0x800000000. Providing this default fixes this.
Note that the behavior of official software is as yet unverified,
arguments-wise.
2020-01-22 20:14:06 -08:00
bunnei
eab03ad919
Merge pull request #3324 from FearlessTobi/port-5037
...
Port citra-emu/citra#5037 : "CMake: Create thin archives on Linux"
2020-01-22 19:48:15 -05:00
Bartosz Kaszubowski
9333dab6f0
GUI: fix minor issues with dark themes
...
GUI: rename and reorder themes
2020-01-22 21:12:45 +01:00
ReinUsesLisp
402f69fb3e
gl_shader_cache: Disable fastmath on Nvidia
2020-01-21 19:08:08 -03:00
Fernando Sahmkow
cb436f6f6f
Merge pull request #3330 from ReinUsesLisp/vk-blit-screen
...
vk_blit_screen: Initial implementation
2020-01-20 22:32:16 -04:00
ReinUsesLisp
aa09f9385c
vk_blit_screen: Address feedback
2020-01-20 18:43:11 -03:00
bunnei
c0a7b5ee4c
time: Fix month off-by-one error.
...
- Fixes timestamp in ZLA and Astral Chain saves.
2020-01-20 14:20:32 -05:00
bunnei
5172d3bdac
Merge pull request #3332 from bunnei/config-audio-tab
...
yuzu_qt: config: Move audio to its own tab.
2020-01-20 04:24:51 -05:00
bunnei
38c28ce329
Merge pull request #3328 from ReinUsesLisp/vulkan-atoms
...
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
2020-01-20 00:01:52 -05:00
bunnei
57816a5b55
Merge pull request #3322 from ReinUsesLisp/vk-front-face
...
vk_graphics_pipeline: Set front facing properly
2020-01-19 23:22:34 -05:00
bunnei
91c7c20c02
yuzu_qt: config: Move audio to its own tab.
...
- We have some important audio settings, makes them more discoverable.
2020-01-19 23:17:53 -05:00
bunnei
96029f90d1
Merge pull request #3271 from bunnei/time-rewrite
...
service: time: Rewrite implementation of glue services.
2020-01-19 22:45:05 -05:00
ReinUsesLisp
fcc78abc3c
vk_blit_screen: Initial implementation
...
This abstraction takes care of presenting accelerated and
non-accelerated or "framebuffer" images to the Vulkan swapchain.
2020-01-19 21:12:43 -03:00
bunnei
f6aa2acacf
Merge pull request #3313 from ReinUsesLisp/vk-rasterizer
...
vk_rasterizer: Implement Vulkan's rasterizer
2020-01-19 18:09:01 -05:00
Bartosz Kaszubowski
ca9353c81c
GUI/gamelist: add "None" as an option for second row and remove dynamically duplicate row options ( #3309 )
...
* GUI/gamelist: add "None" as an option for second row and remove duplicated row options
* fix clang-format warnings
2020-01-19 15:56:49 -05:00
ReinUsesLisp
6b54252b77
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
...
Also updates sirit to include atomic instructions.
2020-01-19 16:40:31 -03:00
FearlessTobi
6df85b466d
system_archive: Fix Chinese font
...
Adds the proper OSS font for the Chinese language.
2020-01-19 15:09:53 +01:00
FearlessTobi
4be062de19
system_archive: Fix Korean font
...
Fixes Korean fonts when using Open-source system archives.
2020-01-19 15:09:50 +01:00
Léo Lam
78f6eea4aa
CMake: Create thin archives on Linux
...
This significantly reduces unnecessary disk writes and space usage
when building Citra.
libcore.a is now only ~1MB rather than several hundred megabytes.
2020-01-19 12:52:09 +01:00
Fernando Sahmkow
6b8406f575
Merge pull request #3317 from ReinUsesLisp/gl-decomp-cc-decomp
...
gl_shader_decompiler: Fix decompilation of condition codes
2020-01-18 19:56:55 -04:00
ReinUsesLisp
1538f99365
gl_state: Use bool instead of GLboolean
...
This fixes template resolution considering GLboolean an integer instead
of a bool.
2020-01-18 19:10:34 -03:00
ReinUsesLisp
4862fc4970
vk_graphics_pipeline: Set front facing properly
...
Front face was being forced to a certain value when cull face is
disabled. Set a default value on initialization and drop the forcefully
set front facing value with culling disabled.
2020-01-18 18:50:47 -03:00
bunnei
621e10788e
Merge pull request #3298 from Simek/missing_hotkeys
...
GUI: add few missing hotkeys to main menu
2020-01-18 13:07:13 -05:00
Markus Wick
4042bd107b
core/memory: Create a special MapMemoryRegion for physical memory.
...
This allows us to create a fastmem arena within the memory.cpp helpers.
2020-01-18 08:38:47 +01:00
Markus Wick
b18f6d19e2
core/hle: Simplify PhysicalMemory usage in vm_manager.
2020-01-18 08:29:19 +01:00
Markus Wick
b8b3264c31
core/loaders: Simplify PhysicalMemory usage.
...
It is currently a std::vector, however we might want to replace it with a more fancy allocator.
So we can't use the C++ iterators any more.
2020-01-18 08:29:19 +01:00
bunnei
726029a9ae
Merge pull request #3305 from ReinUsesLisp/point-size-program
...
gl_state: Implement PROGRAM_POINT_SIZE
2020-01-18 01:56:32 -05:00
bunnei
d6eb2b1632
Merge pull request #3312 from ReinUsesLisp/atoms-u32
...
shader/memory: Implement ATOMS.ADD.U32
2020-01-18 00:54:07 -05:00
James Rowe
afd360f85d
Remove unused CPU Vendor string and telemtry field
...
The information is duplicated in the brand string and the telemetry field is unused
2020-01-17 18:41:18 -07:00
ReinUsesLisp
9a3f0d3d1e
vk_rasterizer: Address feedback
2020-01-17 21:40:01 -03:00
ReinUsesLisp
203353a4d6
gl_shader_decompiler: Fix decompilation of condition codes
...
Use Visit instead of reimplementing it. Fixes unimplemented negations
for condition codes.
2020-01-17 21:23:01 -03:00
TotalCaesar659
410c130a80
Add headbar icon on Linux
2020-01-18 02:46:07 +03:00
bunnei
0a9bf02136
Merge pull request #3306 from ReinUsesLisp/gl-texture
...
gl_texture_cache: Minor fixes and style changes
2020-01-17 15:44:02 -05:00
bunnei
17daec30dc
Merge pull request #3311 from ReinUsesLisp/z32fx24s8
...
format_lookup_table: Fix ZF32_X24S8 component types
2020-01-17 08:22:32 -05:00
ReinUsesLisp
ef4b9a6e39
vk_rasterizer: Implement Vulkan's rasterizer
...
This abstraction is Vulkan's equivalent to OpenGL's rasterizer. It takes
care of joining all parts of the backend and rendering accordingly on
demand.
2020-01-16 23:05:15 -03:00
ReinUsesLisp
b52586eaaa
renderer_vulkan: Add header as placeholder
2020-01-16 22:54:15 -03:00
bunnei
d9854c29ac
Merge pull request #3300 from ReinUsesLisp/vk-texture-cache
...
vk_texture_cache: Implement generic texture cache on Vulkan
2020-01-16 19:19:26 -05:00
ReinUsesLisp
affa8cef27
vk_texture_cache: Address feedback
2020-01-16 18:23:10 -03:00
ReinUsesLisp
c4fd02b47f
shader/memory: Implement ATOMS.ADD.U32
2020-01-16 17:30:55 -03:00
ReinUsesLisp
078193d8bd
format_lookup_table: Fix ZF32_X24S8 component types
...
Component types for ZF32_X24S8 were using UNORM. Drivers will set FLOAT,
UINT, UNORM, UNORM; causing a format mismatch. This commit addresses
that.
2020-01-16 17:29:13 -03:00
Rodrigo Locatti
ec6681ecf4
vk_texture_cache: Fix typo in commentary
...
Co-Authored-By: MysticExile <30736337+MysticExile@users.noreply.github.com>
2020-01-16 16:59:46 -03:00
bunnei
c87f3bef74
Merge pull request #3308 from lioncash/private
...
maxwell_3d: Make dirty_pointers private
2020-01-16 13:26:35 -05:00
bunnei
afbfad0d60
Merge pull request #3304 from lioncash/fwd-decl
...
renderer_opengl/utils: Forward declare private structs
2020-01-16 11:21:18 -05:00
Lioncash
e481a676de
maxwell_3d: Make dirty_pointers private
...
This isn't used outside of the class itself, so we can make it private
for the time being.
2020-01-16 04:07:15 -05:00
James Rowe
47197f6b18
Fix git version in scm_rev.cpp
2020-01-16 00:12:50 -07:00
ReinUsesLisp
1692dab134
gl_state: Implement PROGRAM_POINT_SIZE
...
For gl_PointSize to have effect we have to activate
GL_PROGRAM_POINT_SIZE.
2020-01-15 16:14:17 -03:00
Lioncash
6ab1c2a461
renderer_opengl/utils: Remove unused header inclusions
...
Nothing from these headers are used, so they can be removed.
2020-01-15 06:31:23 -05:00
Lioncash
0cb80ac6dc
renderer_opengl/utils: Forward declare private structs
...
Keeps the definitions hidden and allows changes to the structs without
needing to recompile all users of classes containing said structs.
2020-01-15 06:30:01 -05:00
CJBok
be576083dd
Moved analog direction logic to sdl_impl
2020-01-15 11:25:15 +01:00
CJBok
5af2a8b2f6
Corrected directional states sensitivity
2020-01-14 21:51:58 +01:00
ReinUsesLisp
dcde4b9186
gl_texture_cache: Use local variables to simplify DownloadTexture
2020-01-14 17:39:48 -03:00
ReinUsesLisp
50e0bb04b3
gl_texture_cache: Fix format for RGBX16F
2020-01-14 17:38:33 -03:00
ReinUsesLisp
549ddc898e
gl_texture_cache: Use Snorm internal format for RG8S
2020-01-14 17:37:58 -03:00
ReinUsesLisp
d45f4d62fb
gl_texture_cache: Use Snorm internal format for ABGR8S
2020-01-14 17:37:23 -03:00
Rodrigo Locatti
399da88e9f
Merge pull request #3303 from lioncash/reorder
...
control_flow: Silence -Wreorder warning for CFGRebuildState
2020-01-14 16:15:18 -03:00
Rodrigo Locatti
b6d2e25699
Merge pull request #3302 from lioncash/unused-var
...
gl_shader_cache: Remove unused variables
2020-01-14 16:14:47 -03:00
Lioncash
a4792176ce
control_flow: Silence -Wreorder warning for CFGRebuildState
...
Organizes the initializer list in the same order that the variables
would actually be initialized in.
2020-01-14 13:28:48 -05:00
bunnei
f2844126fc
Merge pull request #3296 from Simek/hotkeys_resize
...
GUI/configure: resize hotkeys action column to fit content
2020-01-14 13:17:16 -05:00
Lioncash
b3810c5a5f
gl_shader_cache: Remove unused STAGE_RESERVED_UBOS constant
...
Given this isn't used, this can be removed entirely.
2020-01-14 13:16:52 -05:00
Lioncash
f0ed92d90d
gl_shader_cache: std::move entries in CachedShader constructor
...
Avoids several reallocations of std::vector instances where applicable.
2020-01-14 13:14:16 -05:00
Lioncash
15b0cdd6bb
gl_shader_cache: Remove unused entries variable in BuildShader()
...
Eliminates a few unnecessary constructions of std::vectors.
2020-01-14 13:11:49 -05:00
bunnei
8f44846de6
Merge pull request #3287 from ReinUsesLisp/ldg-stg-16
...
shader_ir/memory: Implement u16 and u8 for STG and LDG
2020-01-14 09:57:08 -05:00
bunnei
193ac8974d
Merge pull request #3288 from ReinUsesLisp/uncurse-aoffi
...
shader_ir/texture: Simplify AOFFI code
2020-01-13 23:52:12 -05:00
bunnei
1608826ecc
Merge pull request #3290 from ReinUsesLisp/gl-clamp
...
maxwell_to_vk: Implement GL_CLAMP hacking Nvidia's driver
2020-01-13 19:16:06 -05:00
bunnei
bb1fbb05d1
Merge pull request #3292 from degasus/heap_space_fix
...
core/kernel: Fix GetTotalPhysicalMemoryUsed.
2020-01-13 19:15:43 -05:00
ReinUsesLisp
f47fdb4b09
vk_texture_cache: Implement generic texture cache on Vulkan
...
It currently ignores PBO linearizations since these should be dropped as
soon as possible on OpenGL.
2020-01-13 20:37:50 -03:00
ReinUsesLisp
6fd13dc3b8
texture_cache/surface_params: Make GetNumLayers public
2020-01-13 20:35:43 -03:00
Bartosz Kaszubowski
943d33f20c
GUI: add few missing hotkeys to main menu
2020-01-13 00:49:44 +01:00
CJBok
0b20089298
Merge remote-tracking branch 'upstream/master'
2020-01-12 23:21:30 +01:00
Bartosz Kaszubowski
f0da8c2b83
GUI/configure: resize hotkeys column to content
2020-01-12 22:46:28 +01:00
Markus Wick
2049ebc50e
core/kernel: Fix GetTotalPhysicalMemoryUsed.
...
module._memory was already moved over to a new shared_ptr.
So code_memory_size was not increased at all.
This lowers the heap space and so saves a bit of memory, usually between 50 to 100 MB.
This fixes a regression of b8ccd49d77
2020-01-11 14:04:44 +01:00
Rodrigo Locatti
e5f1158dac
vk_compute_pass: Address feedback
...
Comment hardcoded SPIR-V modules.
2020-01-10 22:46:34 -03:00
ReinUsesLisp
18c91ef3e2
maxwell_to_vk: Implement GL_CLAMP hacking Nvidia's driver
...
Nvidia's driver defaults invalid enumerations to GL_CLAMP. Vulkan
doesn't expose GL_CLAMP through its API, but we can hack it on Nvidia's
driver using the internal driver defaults.
2020-01-10 17:12:50 -03:00
ReinUsesLisp
6d7d0e48ad
shader_ir/texture: Simplify AOFFI code
2020-01-09 03:50:37 -03:00
ReinUsesLisp
5fbd305638
shader_ir/memory: Implement u16 and u8 for STG and LDG
...
Using the same technique we used for u8 on LDG, implement u16.
In the case of STG, load memory and insert the value we want to set
into it with bitfieldInsert. Then set that value.
2020-01-09 02:12:29 -03:00
CJBok
57998ae780
hid: Fix analog sticks directional states
2020-01-09 02:40:55 +01:00
ReinUsesLisp
832dd7920a
vk_compute_pass: Add compute passes to emulate missing Vulkan features
...
This currently only supports quad arrays and u8 indices.
In the future we can remove quad arrays with a table written from the
CPU, but this was used to bootstrap the other passes helpers and it
was left in the code.
The blob code is generated from the "shaders/" directory. Read the
instructions there to know how to generate the SPIR-V.
2020-01-08 19:24:26 -03:00
ReinUsesLisp
0961937585
vk_shader_util: Add helper to build SPIR-V shaders
2020-01-08 19:22:20 -03:00
Fernando Sahmkow
36e23e4cda
Merge pull request #3279 from ReinUsesLisp/vk-pipeline-cache
...
vk_pipeline_cache: Initial implementation
2020-01-08 17:31:20 -04:00
bunnei
9bca3fcdb0
Merge pull request #3272 from bunnei/vi-close-layer
...
service: vi: Implement CloseLayer.
2020-01-07 12:45:34 -05:00
ReinUsesLisp
8db329bb9e
vk_pipeline_cache: Initial implementation
...
Given a pipeline key, this cache returns a pipeline abstraction (for
graphics or compute).
2020-01-06 22:02:26 -03:00
ReinUsesLisp
2c7928f71a
vk_graphics_pipeline: Initial implementation
...
This abstractio represents the state of the 3D engine at a given draw.
Instead of changing individual bits of the pipeline how it's done in
APIs like D3D11, OpenGL and NVN; on Vulkan we are forced to put
everything together into a single, immutable object.
It takes advantage of the few dynamic states Vulkan offers.
2020-01-06 22:02:26 -03:00
ReinUsesLisp
e89b88bf80
vk_compute_pipeline: Initial implementation
...
This abstraction represents a Vulkan compute pipeline.
2020-01-06 22:02:26 -03:00
ReinUsesLisp
836580aada
vk_pipeline_cache: Add file and define descriptor update template filler
...
This function allows us to share code between compute and graphics
pipelines compilation.
2020-01-06 22:02:26 -03:00
ReinUsesLisp
a067862bd3
fixed_pipeline_state: Add depth clamp
2020-01-06 22:02:26 -03:00
ReinUsesLisp
3b5cccbf0b
vk_rasterizer: Add placeholder
2020-01-06 22:02:26 -03:00
bunnei
7348d17961
Merge pull request #3276 from ReinUsesLisp/pipeline-reqs
...
vk_update_descriptor/vk_renderpass_cache: Add pipeline cache dependencies
2020-01-06 17:03:34 -05:00
bunnei
76128fa143
Merge pull request #3278 from ReinUsesLisp/vk-memory-manager
...
renderer_vulkan: Buffer cache, stream buffer and memory manager changes
2020-01-06 17:03:04 -05:00
ReinUsesLisp
cdf40c8694
vk_renderpass_cache: Initial implementation
...
The renderpass cache is used to avoid creating renderpasses on each
draw. The hashed structure is not currently optimized.
2020-01-06 18:28:32 -03:00
ReinUsesLisp
09e775bfe0
vk_update_descriptor: Initial implementation
...
The update descriptor is used to store in flat memory a large chunk of
staging data used to update descriptor sets through templates. It
provides a push interface to easily insert descriptors following the
current pipeline. The order used in the descriptor update template has
to be implicitly followed. We can catch bugs here using validation
layers.
2020-01-06 18:28:32 -03:00
ReinUsesLisp
b6476ed501
vk_stream_buffer/vk_buffer_cache: Avoid halting and use generic cache
...
The stream buffer before this commit once it was full (no more bytes to
write before looping) waiting for all previous operations to finish.
This was a temporary solution and had a noticeable performance penalty
in performance (from what a profiler showed).
To avoid this mark with fences usages of the stream buffer and once it
loops wait for them to be signaled. On average this will never wait.
Each fence knows where its usage finishes, resulting in a non-paged
stream buffer.
On the other side, the buffer cache is reimplemented using the generic
buffer cache. It makes use of the staging buffer pool and the new
stream buffer.
2020-01-06 18:13:41 -03:00
ReinUsesLisp
f0573c5b5d
vk_memory_manager: Misc changes
...
* Allocate memory in discrete exponentially increasing chunks until the
128 MiB threshold. Allocations larger thant that increase linearly by
256 MiB (depending on the required size). This allows to use small
allocations for small resources.
* Move memory maps to a RAII abstraction. To optimize for debugging
tools (like RenderDoc) users will map/unmap on usage. If this ever
becomes a noticeable overhead (from my profiling it doesn't) we can
transparently move to persistent memory maps without harming the API,
getting optimal performance for both gameplay and debugging.
* Improve messages on exceptional situations.
* Fix typos "requeriments" -> "requirements".
* Small style changes.
2020-01-06 18:13:41 -03:00
ReinUsesLisp
5d4412443e
vk_buffer_cache: Temporarily remove buffer cache
...
This is intended for a follow up commit to avoid circular dependencies.
2020-01-06 17:58:46 -03:00
bunnei
890b59bdff
Merge pull request #3277 from ReinUsesLisp/make-current
...
yuzu/bootmanager: Remove {glx,wgl}MakeCurrent on SwapBuffers
2020-01-06 14:09:19 -05:00
ReinUsesLisp
c0fe595878
yuzu/bootmanager: Remove {glx,wgl}MakeCurrent on SwapBuffers
...
MakeCurrent is a costly (according to Nsight's profiler it takes a tenth
of a millisecond to complete), and we don't have a reason to call it
because:
- Qt no longer signals a warning if it's not called
- yuzu no longer supports macOS
2020-01-06 14:02:47 -03:00
bunnei
5cefb60748
Merge pull request #3261 from degasus/page_table
...
core/memory + arm/dynarmic: Use a global offset within our arm page table.
2020-01-06 11:56:59 -05:00
bunnei
62d4e927d4
Merge pull request #3257 from degasus/no_busy_loops
...
video_core: Block in WaitFence.
2020-01-06 00:09:57 -05:00
Fernando Sahmkow
9fee5297ec
Merge pull request #3264 from ReinUsesLisp/vk-descriptor-pool
...
vk_descriptor_pool: Initial implementation
2020-01-05 15:54:41 -04:00
bunnei
0eaf2e8672
Merge pull request #2945 from FernandoS27/fix-bcat
...
nifm: Only return that there's an internet connection when there's a BCATServer
2020-01-05 02:17:16 -05:00
bunnei
18e502d636
service: time: Implement GetStandardLocalSystemClock.
2020-01-04 22:18:54 -05:00
bunnei
73900c4678
Merge pull request #3258 from FernandoS27/shader-amend
...
Shader_IR: add the ability to amend code in the shader ir.
2020-01-04 14:05:17 -05:00
bunnei
940ed35ee2
time: Remove overflow error checking (currently breaks ADO builds).
2020-01-04 13:48:31 -05:00
bunnei
2fef8d9feb
service: time: Implement GetClockSnapshotFromSystemClockContext.
2020-01-04 13:48:30 -05:00
bunnei
0d1c9fe2a9
service: time: Implement IsStandardNetworkSystemClockAccuracySufficient.
2020-01-04 13:48:30 -05:00
bunnei
756c19b448
system_archive: Add a basic HLE implementation for time zone binary.
2020-01-04 13:48:29 -05:00
bunnei
ac22daaf4f
service: time: Rewrite implementation of glue services.
2020-01-04 13:48:29 -05:00
Fernando Sahmkow
591d53e1c3
Shader_IR: Address Feedback
2020-01-04 14:40:57 -04:00
bunnei
9431286523
core: Initialize several structs that make use of Common::UUID.
2020-01-04 13:29:55 -05:00
Fernando Sahmkow
501d87c82b
Shader_IR: Implement TXD Array.
...
This commit extends the compilation of TXD to support array samplers on
TXD.
2020-01-04 13:28:02 -04:00
bunnei
cbaf3b3c40
service: vi: Implement CloseLayer.
...
- Needed for Undertale.
2020-01-04 00:45:06 -05:00
Rodrigo Locatti
c7ef4c32e3
Update src/video_core/renderer_vulkan/vk_descriptor_pool.cpp
...
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2020-01-03 17:34:30 -03:00
bunnei
5b2b762ec9
Merge pull request #3247 from FernandoS27/remap-fix
...
NvServices: Correct Ioctl Remap.
2020-01-03 12:30:56 -05:00
CJBok
21e0086bf8
const correction
2020-01-03 10:30:51 +01:00
CJBok
ef66081b4d
clang
2020-01-03 09:31:54 +01:00
CJBok
c6939635cb
Update configure_input_player.cpp
2020-01-03 09:11:34 +01:00
CJBok
f4d746e41e
Added deadzone controls for sdl engine at input settings
2020-01-03 08:54:57 +01:00
ReinUsesLisp
9328c4be0b
yuzu: Remove Maxwell debugger
...
This was carried from Citra and wasn't really used on yuzu. It also adds
some runtime overhead. This commit removes it from yuzu's codebase.
2020-01-02 23:09:44 -03:00
bunnei
1bfdfe2abf
Merge pull request #3243 from ReinUsesLisp/topologies
...
maxwell_to_gl: Implement missing primitive topologies
2020-01-01 20:33:33 -05:00
ReinUsesLisp
e3713ec645
vk_descriptor_pool: Initial implementation
...
Create a large descriptor pool where we allocate all our descriptors
from. It has to be wide enough to support any pipeline, hence its large
numbers.
If the descritor pool is filled, we allocate more memory at that moment.
This way we can take advantage of permissive drivers like Nvidia's that
allocate more descriptors than what the spec requires.
2020-01-01 16:44:06 -03:00
Markus Wick
f74d95547e
core/memory + arm/dynarmic: Use a global offset within our arm page table.
...
This saves us two x64 instructions per load/store instruction.
TODO: Clean up our memory code. We can use this optimization here as well.
2020-01-01 12:24:54 +01:00
bunnei
0f250f4a1f
Merge pull request #3239 from ReinUsesLisp/p2r
...
shader/p2r: Implement P2R Pr
2019-12-31 20:37:16 -05:00
Fernando Sahmkow
a4d446291d
Shader_IR: add the ability to amend code in the shader ir.
...
This commit introduces a mechanism by which shader IR code can be
amended and extended. This useful for track algorithms where certain
information can derived from before the track such as indexes to array
samplers.
2019-12-30 15:31:48 -04:00
Fernando Sahmkow
193a942e9f
Merge pull request #3248 from ReinUsesLisp/vk-image
...
vk_image: Add an image object abstraction
2019-12-30 14:25:14 -04:00
Rodrigo Locatti
00ebed081e
vk_image: Avoid unnecesary equals
2019-12-30 13:28:23 -03:00
Fernando Sahmkow
270ca7ddd2
Merge pull request #3249 from ReinUsesLisp/vk-staging-buffer-pool
...
vk_staging_buffer_pool: Add a staging pool for temporary operations
2019-12-30 12:25:59 -04:00
Markus Wick
4bdaebe33e
video_core: Block in WaitFence.
...
This function is called rarely and blocks quite often for a long time.
So don't waste power and let the CPU sleep.
This might also increase the performance as the other cores might be allowed to clock higher.
2019-12-30 13:04:53 +01:00
Rodrigo Locatti
a38fec0721
vk_staging_buffer_pool: Initialize last epoch to zero
2019-12-29 19:19:43 -03:00
Fernando Sahmkow
b6825f4b37
Merge pull request #3250 from ReinUsesLisp/empty-fragment
...
gl_rasterizer: Allow rendering without fragment shader
2019-12-28 14:33:53 -04:00
bunnei
9d254bf997
Merge pull request #3228 from ReinUsesLisp/ptp
...
shader/texture: Implement AOFFI and PTP for TLD4 and TLD4S
2019-12-26 21:43:44 -05:00
ReinUsesLisp
baaef2d12a
gl_rasterizer: Allow rendering without fragment shader
...
Rendering without a fragment shader is usually used in depth-only
passes.
2019-12-26 16:38:49 -03:00
ReinUsesLisp
3f151e2d31
vk_staging_buffer_pool: Add a staging pool for temporary operations
...
The job of this abstraction is to provide staging buffers for temporary
operations. Think of image uploads or buffer uploads to device memory.
It automatically deletes unused buffers.
2019-12-25 18:12:17 -03:00
ReinUsesLisp
5721e2cbae
vk_image: Add an image object abstraction
...
This object's job is to contain an image and manage its transitions.
Since Nvidia hardware doesn't know what a transition is but Vulkan
requires them anyway, we have to state track image subresources
individually.
To avoid the overhead of tracking each subresource in images with many
subresources (think of cubemap arrays with several mipmaps), this commit
tracks when subresources have diverged. As long as this doesn't happen
we can check the state of the first subresource (that will be shared
with all subresources) and update accordingly.
Image transitions are deferred to the scheduler command buffer.
2019-12-25 18:00:16 -03:00
Fernando Sahmkow
367257a258
NvServices: Correct Ioctl Remap.
...
This commit corrects a padding value in Ioctl Remap that was actually an
offset to the mapping address.
2019-12-25 14:37:28 -04:00
Fernando Sahmkow
cbc8179a26
Merge pull request #3244 from ReinUsesLisp/vk-fps
...
fixed_pipeline_state: Define structure and loaders
2019-12-25 14:31:29 -04:00
bunnei
b509c1eed8
Merge pull request #3236 from ReinUsesLisp/rasterize-enable
...
gl_rasterizer: Implement RASTERIZE_ENABLE
2019-12-24 22:54:10 -05:00
ReinUsesLisp
4c69a886df
fixed_pipeline_state: Define symetric operator!= and mark as noexcept
...
Marks as noexcept Hash, operator== and operator!= for consistency.
2019-12-24 18:24:08 -03:00
ReinUsesLisp
46b7e6df1e
fixed_pipeline_state: Define structure and loaders
...
The intention behind this hasheable structure is to describe the state
of fixed function pipeline state that gets compiled to a single graphics
pipeline state object. This is all dynamic state in OpenGL but Vulkan
wants it in an immutable state, even if hardware can edit it freely.
In this commit the structure is defined in an optimized state (it uses
booleans, has paddings and many data entries that can be packed to
single integers). This is intentional as an initial implementation that
is easier to debug, implement and review. It will be optimized in later
stages, or it might change if Vulkan gets more dynamic states.
2019-12-22 22:59:11 -03:00
ReinUsesLisp
9d9c29a986
maxwell_3d: Add depth bounds registers
2019-12-22 22:55:06 -03:00
ReinUsesLisp
e2392c01a7
maxwell_to_gl: Implement missing primitive topologies
...
Many of these topologies are exclusively available in OpenGL.
2019-12-22 22:33:01 -03:00
bunnei
2d67e74340
Merge pull request #3241 from ReinUsesLisp/gl-shader-cache
...
gl_shader_cache: Style changes
2019-12-22 16:23:46 -05:00
bunnei
b10cbc8d01
Merge pull request #3238 from ReinUsesLisp/vk-resource-manager
...
vk_resource_manager: Catch device losses and other changes
2019-12-22 15:57:16 -05:00
bunnei
31686bae2d
Merge pull request #3203 from FernandoS27/tex-cache-fixes
...
Texture Cache: Add HLE methods for building 3D textures
2019-12-22 14:25:13 -05:00
Fernando Sahmkow
660344d633
Merge pull request #3237 from ReinUsesLisp/vk-shader-decompiler
...
vk_shader_decompiler: Misc changes
2019-12-22 12:36:56 -04:00
Fernando Sahmkow
7b2a50efdc
Texture Cache: Improve documentation
2019-12-22 12:29:23 -04:00
Fernando Sahmkow
2882099653
Texture Cache: Address Feedback
2019-12-22 12:24:34 -04:00
Fernando Sahmkow
dab454a72b
Texture Cache: Add HLE methods for building 3D textures within the GPU in certain scenarios.
...
This commit adds a series of HLE methods for handling 3D textures in
general. This helps games that generate 3D textures on every frame and
may reduce loading times for certain games.
2019-12-22 12:24:34 -04:00
Fernando Sahmkow
04eade88de
Merge pull request #3230 from ReinUsesLisp/vk-emu-shaders
...
renderer_vulkan/shader: Add helper GLSL shaders
2019-12-22 11:23:09 -04:00
Fernando Sahmkow
e9d8ed8845
Merge pull request #3240 from ReinUsesLisp/decomp-cond-code
...
vk_shader_decompiler: Use Visit instead of reimplementing it
2019-12-22 11:20:55 -04:00
bunnei
eff6d1f5cd
Merge pull request #3235 from ReinUsesLisp/ldg-u8
...
shader/memory: Implement LDG.U8 and unaligned U8 loads
2019-12-21 22:50:28 -05:00
ReinUsesLisp
ceaafb4f7f
gl_shader_cache: Update commentary for shared memory
...
Remove false commentary. Not dividing by 4 the size of shared memory is
not a hack; it describes the number of integers, not bytes.
While we are at it sort the generated code to put preprocessor lines on
the top.
2019-12-20 22:51:21 -03:00
ReinUsesLisp
fca3e94060
gl_shader_cache: Remove unused entry in GetPrimitiveDescription
2019-12-20 22:49:30 -03:00
ReinUsesLisp
0504a60f62
vk_shader_decompiler: Use Visit instead of reimplementing it
...
ExprCondCode visit implements the generic Visit. Use this instead of
that one.
As an intended side effect this fixes unwritten memory usages in cases
when a negation of a condition code is used.
2019-12-20 21:36:25 -03:00
ReinUsesLisp
dd6e7808f5
shader/p2r: Implement P2R Pr
...
P2R dumps predicate or condition codes state to a register. This is
useful for unit testing.
2019-12-20 18:02:41 -03:00
ReinUsesLisp
0544c7ebce
shader/r2p: Refactor P2R to support P2R
2019-12-20 17:55:42 -03:00
bunnei
ffc32e4d7d
Merge pull request #3234 from ReinUsesLisp/i2f-u8-selector
...
shader/conversion: Implement byte selector in I2F
2019-12-19 22:36:26 -05:00
bunnei
d92950e3ce
Merge pull request #3233 from ReinUsesLisp/mismatch-sizes
...
shader/texture: Properly shrink unused entries in size mismatches
2019-12-19 20:40:27 -05:00
ReinUsesLisp
bb51f0809a
vk_resource_manager: Add entry to VKFence to test its usage
2019-12-19 16:31:34 -03:00
ReinUsesLisp
9929ad309d
vk_reosurce_manager: Add assert for releasing fences
...
Notify the programmer when a request to release a fence is invalid
because the fence is already free.
2019-12-19 16:31:34 -03:00
ReinUsesLisp
b784cc3dbb
vk_resource_manager: Implement VKFenceWatch move constructor
...
This allows us to put VKFenceWatch inside a std::vector without storing
it in heap. On move we have to signal the fences where the new protected
resource is, adding some overhead.
2019-12-19 16:31:34 -03:00
ReinUsesLisp
a50d506481
vk_device: Add entry to catch device losses
...
VK_NV_device_diagnostic_checkpoints allows us to push data to a Vulkan
queue and then query it even after a device loss. This allows us to push
the current pipeline object and see what was the call that killed the
device.
2019-12-19 16:31:33 -03:00
ReinUsesLisp
c4a97ffe7a
vk_shader_decompiler: Fix full decompilation
...
When full decompilation was enabled, labels were not being inserted and
instructions were misused. Fix these bugs.
2019-12-19 16:24:45 -03:00
ReinUsesLisp
a3d277cee9
vk_shader_decompiler: Skip NDC correction when it is native
...
Avoid changing gl_Position when the NDC used by the game is [0, 1]
(Vulkan's native).
2019-12-19 16:24:45 -03:00
ReinUsesLisp
a328090680
vk_shader_decompiler: Normalize output fragment attachments
...
Some games write from fragment shaders to an unexistant framebuffer
attachment or they don't write to one when it exists in the framebuffer.
Fix this by skipping writes or adding zeroes.
2019-12-19 16:24:45 -03:00
bunnei
65b114bf8d
Merge pull request #3232 from ReinUsesLisp/gl-decompiler-images
...
gl_shader_decompiler: Add missing DeclareImages
2019-12-19 11:32:47 -05:00
bunnei
32d7916924
Merge pull request #3231 from ReinUsesLisp/tld4s-encoding
...
shader_bytecode: Fix TLD4S encoding
2019-12-19 11:32:25 -05:00
ReinUsesLisp
23cc012f11
vk_device: Add query for RGBA8Uint
2019-12-19 02:08:29 -03:00
ReinUsesLisp
c7670d62a5
vk_shader_decompiler: Update sirit and implement Texture AOFFI
2019-12-19 01:42:13 -03:00
bunnei
80022929ed
Merge pull request #3221 from ReinUsesLisp/vk-scheduler
...
vk_scheduler: Delegate commands to a worker thread and state track
2019-12-18 22:04:08 -05:00
ReinUsesLisp
0eb9f3b107
gl_rasterizer: Implement RASTERIZE_ENABLE
...
RASTERIZE_ENABLE is the opposite of GL_RASTERIZER_DISCARD. Implement it
naturally using this.
NVN games expect rasterize to be enabled by default, reflect that in our
initial GPU state.
2019-12-18 19:28:23 -03:00
ReinUsesLisp
18ae3212cc
shader/memory: Implement LDG.U8 and unaligned U8 loads
...
LDG can load single bytes instead of full integers or packs of integers.
These have the advantage of loading bytes that are not aligned to 4
bytes.
To emulate these this commit gets the byte being referenced (by doing
"address & 3" and then using that to extract the byte from the loaded
integer:
result = bitfieldExtract(loaded_integer, (address % 4) * 8, 8)
2019-12-18 01:21:46 -03:00
ReinUsesLisp
034809d729
shader/conversion: Implement byte selector in I2F
...
I2F's byte selector is used to choose what bytes to convert to float.
e.g. if the input is 0xaabbccdd and the selector is ".B3" it will
convert 0xaa. The default (when it's not shown in nvdisasm) is ".B0", in
that example the default would convert 0xdd to float.
2019-12-18 00:41:22 -03:00
ReinUsesLisp
b082a0eb3f
shader/texture: Properly shrink unused entries in size mismatches
...
When a image format mismatches we were inserting zeroes to the texture
itself. This was not handling cases were the mismatch uses less
coordinates than the guest shader code. Address that by resizing the
vector.
2019-12-17 23:38:10 -03:00
ReinUsesLisp
b43ae0ad16
gl_shader_decompiler: Add missing DeclareImages
2019-12-17 23:34:15 -03:00
ReinUsesLisp
6acbec5666
shader_bytecode: Fix TLD4S encoding
2019-12-17 23:32:10 -03:00
bunnei
c54d8affb9
Merge pull request #3173 from yuzu-emu/bunnei-spscqueue
...
common: SPSCQueue: Notify after incrementing queue size.
2019-12-17 14:11:20 -05:00
bunnei
60fa40fc16
common: SPSCQueue: Notify after incrementing queue size.
2019-12-16 20:39:53 -05:00
ReinUsesLisp
1690b747d8
renderer_vulkan/shader: Add helper GLSL shaders
...
These shaders are used to specify code that is not dynamically generated
in the Vulkan backend. Instead of packing it inside the build system,
it's manually built and copied to the C++ file to avoid adding
unnecessary build time dependencies.
quad_array should be dropped in the future since it can be emulated with
a memory pool generated from the CPU.
2019-12-16 17:59:08 -03:00
bunnei
2cd276c0d0
Merge pull request #3182 from ReinUsesLisp/renderer-opengl
...
renderer_opengl: Miscellaneous clean ups
2019-12-16 13:01:04 -05:00
ReinUsesLisp
ac847a8cca
shader/texture: Implement TLD4.PTP
2019-12-16 04:09:24 -03:00
ReinUsesLisp
60dbe4b993
shader/texture: Enable arrayed TLD4
2019-12-16 02:37:21 -03:00
ReinUsesLisp
1516cc8bd3
gl_shader_decompiler: Rename "sepparate" to "separate"
2019-12-16 02:12:51 -03:00
ReinUsesLisp
06cf61aab3
shader/texture: Implement AOFFI for TLD4S
2019-12-16 02:06:42 -03:00
ReinUsesLisp
358e20f25b
shader/texture: Remove unnecesary parenthesis
2019-12-16 01:52:33 -03:00
Rodrigo Locatti
adb60a8810
Merge pull request #3219 from FernandoS27/fix-bindless
...
Corrections and fixes to TLD4S & bindless samplers failing
2019-12-16 01:26:11 -03:00
bunnei
ab8be46a8c
Merge pull request #3222 from ReinUsesLisp/maxwell-to-vk
...
maxwell_to_vk: Use VK_EXT_index_type_uint8 and misc changes
2019-12-14 22:30:12 -05:00
bunnei
6dee70147c
Merge pull request #3213 from ReinUsesLisp/intel-mesa
...
gl_device: Enable compute shaders for Intel Mesa drivers
2019-12-14 16:04:31 -05:00
bunnei
06e7951fc9
Merge pull request #3212 from ReinUsesLisp/fix-smem-lmem
...
gl_shader_cache: Add missing new-line on emitted GLSL
2019-12-13 21:35:29 -05:00