Commit Graph

14030 Commits

Author SHA1 Message Date
bunnei
e89c889482 Merge pull request #3130 from FernandoS27/cancel-sync
Kernel: Correct Cancel Synchronization.
2019-11-23 13:23:23 -05:00
Weiyi Wang
ab30eeb68a fix clang-format and lambda capture 2019-11-23 01:30:06 +01:00
Weiyi Wang
1f6aadbb54 unfold UNREACHABLE implementation for dumb compilers
We relies on UNREACHABLE's noreturn attribute to eliminate parent's "no return value" warning. However, this was wrapped in a `if(!false)` block, which compilers may not unfold to recognize the noreturn nature.
2019-11-23 01:30:06 +01:00
ReinUsesLisp
18905c8ef7 gl_device: Reserve base bindings on limited devices
SSBOs and other resources are limited per pipeline on Intel and AMD.
Heuristically reserve resources per stage having in mind the reported
OpenGL limits.
2019-11-22 21:28:50 -03:00
ReinUsesLisp
649aba0973 gl_state: Skip null texture binds
glBindTextureUnit doesn't support null textures. Skip binding these.
2019-11-22 21:28:50 -03:00
ReinUsesLisp
54bf7a7e4b gl_rasterizer: Disable compute shaders on Intel
Intel's proprietary driver enters in a corrupt state when compute
shaders are executed. For now, disable these.
2019-11-22 21:28:50 -03:00
ReinUsesLisp
6e9100b83c gl_shader_cache: Hack shared memory size
The current shared memory size seems to be smaller than what the game
actually uses. This makes Nvidia's driver consistently blow up; in the
case of FE3H it made it explode on Qt's SwapBuffers while SDL2 worked
just fine. For now keep this hack since it's still progress over the
previous hardcoded shared memory size.
2019-11-22 21:28:49 -03:00
ReinUsesLisp
1107fe39a6 gl_shader_decompiler: Normalize image bindings 2019-11-22 21:28:49 -03:00
ReinUsesLisp
1bbbeeb2df gl_shader_decompiler: Normalize cbuf bindings
Stage and compute shaders were using a different binding counter.
Normalize these.
2019-11-22 21:28:49 -03:00
ReinUsesLisp
642c4ddb35 gl_rasterizer: Add missing cbuf counter reset on compute 2019-11-22 21:28:49 -03:00
ReinUsesLisp
315fad523b gl_shader_cache: Remove dynamic BaseBinding specialization 2019-11-22 21:28:49 -03:00
ReinUsesLisp
f6bd55bd67 video_core: Unify ProgramType and ShaderStage into ShaderType 2019-11-22 21:28:48 -03:00
ReinUsesLisp
4f2151f6c4 gl_rasterizer: Bind graphics images to draw commands
Images were not being bound to draw invocations because these would
require a cache invalidation.
2019-11-22 21:28:48 -03:00
ReinUsesLisp
611c598ece gl_shader_cache: Specialize local memory size for compute shaders
Local memory size in compute shaders was stubbed with an arbitary size.
This commit specializes local memory size from guest GPU parameters.
2019-11-22 21:28:48 -03:00
ReinUsesLisp
da6e4aef06 gl_shader_cache: Specialize shared memory size
Shared memory was being declared with an undefined size. Specialize from
guest GPU parameters the compute shader's shared memory size.
2019-11-22 21:28:47 -03:00
ReinUsesLisp
1dc209a600 gl_shader_cache: Specialize shader workgroup
Drop the usage of ARB_compute_variable_group_size and specialize compute
shaders instead. This permits compute to run on AMD and Intel
proprietary drivers.
2019-11-22 21:28:47 -03:00
ReinUsesLisp
9655309c38 shader/texture: Handle TLDS texture type mismatches
Some games like "Fire Emblem: Three Houses" bind 2D textures to offsets
used by instructions of 1D textures. To handle the discrepancy this
commit uses the the texture type from the binding and modifies the
emitted code IR to build a valid backend expression.

E.g.: Bound texture is 2D and instruction is 1D, the emitted IR samples
a 2D texture in the coordinate ivec2(X, 0).
2019-11-22 21:28:47 -03:00
ReinUsesLisp
c1e50b09b2 shader/texture: Deduce texture buffers from locker
Instead of specializing shaders to separate texture buffers from 1D
textures, use the locker to deduce them while they are being decoded.
2019-11-22 21:28:47 -03:00
bunnei
a18b684740 Merge pull request #3140 from FearlessTobi/port-4953
Port citra-emu/citra#4953: "citra_qt/main.ui: remove unused actions "Load Symbol Map..." and "Select Game Directory...""
2019-11-21 15:32:24 -05:00
bunnei
36b57e7f73 Merge pull request #3112 from lioncash/skip
service/am: Remove unnecessary Skip calls
2019-11-21 15:30:01 -05:00
bunnei
d6a8a340e1 Merge pull request #3111 from lioncash/query
am: Stub QueryApplicationPlayStatistics
2019-11-21 15:29:34 -05:00
Fernando Sahmkow
22b36aa0ff Kernel: Optimize condition variable threads management. 2019-11-21 11:13:29 -04:00
Fernando Sahmkow
5fc619d024 Kernel: Correct SignalProcessWideKey
When the target is 0, all threads must be processed.
2019-11-21 10:46:55 -04:00
Fernando Sahmkow
e0556e4ffd Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
This commit ensures cond var threads act exactly as they do in the real
console. The original implementation uses an RBTree and the behavior of
cond var threads is that at the same priority level they act like a
FIFO.
2019-11-21 10:46:55 -04:00
ReinUsesLisp
1ee5450331 buffer_cache: Remove brace initialized for objects with default constructor 2019-11-20 16:00:40 -03:00
Fernando Sahmkow
faac63afbb Texture_Cache: Redo invalid Surfaces handling.
This commit aims to redo the full setup of invalid textures and
guarantee correct behavior across backends in the case of finding one by
using black dummy textures that match the target of the expected
texture.
2019-11-20 14:59:35 -04:00
Mat M
3ea4d891f9 Merge pull request #3142 from ReinUsesLisp/depbar-log
shader/other: Reduce DEPBAR log severity
2019-11-19 19:52:41 -05:00
ReinUsesLisp
6dd799c286 shader/other: Reduce DEPBAR log severity
While DEPBAR is stubbed it doesn't change anything from our end. Shading
languages handle what this instruction does implicitly. We are not
getting anything out fo this log except noise.
2019-11-19 21:26:40 -03:00
ReinUsesLisp
67dfeb5a05 gl_shader_gen: Apply default value to gl_Position
Nvidia has sane default output values for varyings, but the other
vendors don't apply these. To properly emulate this we would have to
analyze the shader header. For the time being, apply the same default
Nvidia applies so we get the same behaviour on non-Nvidia drivers.
2019-11-19 20:32:01 -03:00
bunnei
7a22b83bb7 Merge pull request #3086 from ReinUsesLisp/format-lookups
texture_cache: Use a flat table instead of switch for texture format lookups
2019-11-19 18:29:17 -05:00
Tobias
11ee72e62e citra_qt/main.ui: remove unused actions "Load Symbol Map..." and...
..."Select Game Directory..."

Co-authored-by: vvanelslande <vvanelslandedev@gmail.com>
2019-11-19 16:39:58 +01:00
Fernando Sahmkow
e036813546 Shader_IR: Address Feedback 2019-11-18 07:34:34 -04:00
bunnei
fbc911b978 Merge pull request #3123 from ReinUsesLisp/logging-return
common/logging: Silence no return value warnings
2019-11-17 20:29:51 -05:00
Fernando Sahmkow
409127ec25 Merge pull request #3126 from yuzu-emu/revert-3106-bitfield
Revert "common/bit_field: Silence sign-conversion warnings"
2019-11-16 14:23:15 -04:00
Fernando Sahmkow
62860330ed Kernel: Correct Cancel Synchronization.
This commit corrects the behavior of cancel synchronization when the
thread is running/ready and ensures the next wait is cancelled as it's
suppose to.
2019-11-16 12:41:51 -04:00
Rodrigo Locatti
1459b8ede6 Revert "common/bit_field: Silence sign-conversion warnings" 2019-11-16 03:29:37 -03:00
Rodrigo Locatti
b87e3017c2 Merge pull request #3106 from lioncash/bitfield
common/bit_field: Silence sign-conversion warnings
2019-11-15 18:49:20 -03:00
ReinUsesLisp
11329635d0 common/logging: Silence no return value warnings 2019-11-15 18:43:35 -03:00
bunnei
a7e66048ca Merge pull request #3047 from ReinUsesLisp/clip-control
gl_rasterizer: Emulate viewport flipping with ARB_clip_control
2019-11-15 12:09:19 -05:00
bunnei
e8feb4732b Merge pull request #3091 from lioncash/core-conversion
core: Make most implicit type conversion warnings errors on MSVC
2019-11-15 12:08:50 -05:00
Lioncash
fb1ee6ed18 common/bit_field: Silence sign-conversion warnings
We can just use numeric_limits instead of relying on wraparound behavior
here.
2019-11-15 07:09:30 -05:00
ReinUsesLisp
25bb7130dd format_lookup_table: Address feedback
format_lookup_table: Drop bitfields

format_lookup_table: Use std::array for definition table

format_lookup_table: Include <limits> instead of <numeric>
2019-11-14 20:57:30 -03:00
ReinUsesLisp
b54afc3c1f texture_cache: Use a table instead of switch for texture formats
Use a large flat array to look up texture formats. This allows us to
properly implement formats with different component types. It should
also be faster.
2019-11-14 20:57:10 -03:00
Rodrigo Locatti
898aa3700e Merge pull request #3113 from lioncash/semi
common_funcs: Remove semicolons from INSERT_PADDING_* macros
2019-11-14 20:29:51 -03:00
Lioncash
34a798a367 common_funcs: Remove semicolons from INSERT_PADDING_* macros
Makes code that uses the macros consistent by requiring the lines to be
terminated with a semicolon.
2019-11-14 17:05:27 -05:00
Lioncash
ef22d3b565 service/am: Remove unnecessary Skip calls
We can simplify these by wrapping the necessary members in structs and
then simply reading out the whole struct.
2019-11-14 16:31:52 -05:00
ReinUsesLisp
2be62645ba texture_cache: Drop abstracted ComponentType
Abstracted ComponentType was not being used in a meaningful way.
This commit drops its usage.

There is one place where it was being used to test compatibility between
two cached surfaces, but this one is implied in the pixel format.
Removing the component type test doesn't change the behaviour.
2019-11-14 18:21:42 -03:00
Rodrigo Locatti
273a378dbb Merge pull request #3110 from greggameplayer/CompleteRGBA16UI
Complete the implementation of RGBA16UI
2019-11-14 18:21:12 -03:00
Lioncash
8c1386f7b2 am: Stub QueryApplicationPlayStatistics
Maintains implementation parity between QueryApplicationPlayStatistics
and QueryApplicationPlayStatisticsByUid.

These function the same behaviorally underneath the hood, with the only
difference being that one allows specifying a UID.
2019-11-14 16:02:39 -05:00
greggameplayer
9294b33670 correct the implementation of RGBA16UI 2019-11-14 21:37:39 +01:00