Commit Graph

12175 Commits

Author SHA1 Message Date
ReinUsesLisp 31daa97fce maxwell_3d: Use two tables instead of three for dirty flags 2020-02-28 17:56:42 -03:00
ReinUsesLisp 5d75921b0f gl_state_tracker: Track state of index buffers 2020-02-28 17:56:42 -03:00
ReinUsesLisp 085cca1a2c gl_state_tracker: Implement dirty flags for clip control 2020-02-28 17:56:42 -03:00
ReinUsesLisp de5a81846d gl_state_tracker: Implement dirty flags for point sizes 2020-02-28 17:56:42 -03:00
ReinUsesLisp cd63e8d770 gl_state_tracker: Implement dirty flags for fragment color clamp 2020-02-28 17:56:42 -03:00
ReinUsesLisp d01d671249 gl_state_tracker: Implement dirty flags for logic op 2020-02-28 17:56:42 -03:00
ReinUsesLisp 5c2d6d7e60 gl_state_tracker: Implement dirty flags for sRGB 2020-02-28 17:56:42 -03:00
ReinUsesLisp 68b8e45c90 gl_state_tracker: Implement dirty flags for rasterize enable 2020-02-28 17:56:42 -03:00
ReinUsesLisp ec5b0560cb gl_state_tracker: Implement dirty flags for multisample 2020-02-28 17:56:42 -03:00
ReinUsesLisp 491ccb08df gl_state_tracker: Implement dirty flags for alpha testing 2020-02-28 17:56:42 -03:00
ReinUsesLisp 2ccac5964f gl_state_tracker: Implement dirty flags for polygon offsets 2020-02-28 17:56:42 -03:00
ReinUsesLisp aaf414a81b gl_state_tracker: Implement dirty flags for primitive restart 2020-02-28 17:56:42 -03:00
ReinUsesLisp 0b99bf70d8 gl_state_tracker: Implement dirty flags for stencil testing 2020-02-28 17:56:42 -03:00
ReinUsesLisp 7a7310e569 gl_state_tracker: Implement depth dirty flags 2020-02-28 17:56:42 -03:00
ReinUsesLisp 1ce88e6353 gl_state_tracker: Implement dirty flags for front face and culling 2020-02-28 17:56:42 -03:00
ReinUsesLisp eac75695c3 gl_state_tracker: Implement dirty flags for blending 2020-02-28 17:56:42 -03:00
ReinUsesLisp 25ff66b197 gl_state_tracker: Implement dirty flags for clip distances and shaders 2020-02-28 17:56:42 -03:00
ReinUsesLisp a5ee496714 gl_state_tracker: Add dirty flags for buffers and divisors 2020-02-28 17:56:42 -03:00
ReinUsesLisp e94ea8758d maxwell_3d: Change write dirty flags to a bitset 2020-02-28 17:56:42 -03:00
ReinUsesLisp 8798448c7b gl_state_tracker: Implement dirty flags for vertex formats 2020-02-28 17:56:42 -03:00
ReinUsesLisp edb6fe5200 gl_state_tracker: Implement dirty flags for color masks 2020-02-28 17:56:42 -03:00
ReinUsesLisp 587dff21dc gl_state_tracker: Implement dirty flags for scissors 2020-02-28 17:56:42 -03:00
ReinUsesLisp fb114073d3 gl_state_tracker: Implement dirty flags for viewports 2020-02-28 17:56:41 -03:00
ReinUsesLisp 52973c9b53 renderer_opengl: Reintroduce dirty flags for render targets 2020-02-28 17:56:41 -03:00
ReinUsesLisp 95596b787e maxwell_3d: Flatten cull and front face registers 2020-02-28 17:56:41 -03:00
ReinUsesLisp 005f5ca883 video_core: Reintroduce dirty flags infrastructure 2020-02-28 17:56:41 -03:00
ReinUsesLisp 02ae826edd gl_state: Remove completely 2020-02-28 17:56:35 -03:00
ReinUsesLisp 486721cb6c gl_state: Remove program tracking 2020-02-28 17:52:14 -03:00
ReinUsesLisp 24cb363eb8 gl_state: Remove framebuffer tracking 2020-02-28 17:52:10 -03:00
ReinUsesLisp 49725f0472 gl_state: Remove image tracking 2020-02-28 17:36:40 -03:00
ReinUsesLisp 3e8bde451d gl_state: Remove texture and sampler tracking 2020-02-28 17:35:58 -03:00
ReinUsesLisp 0b17608266 gl_state: Remove blend state tracking 2020-02-28 17:34:43 -03:00
ReinUsesLisp ca3cf56db5 gl_state: Remove stencil test tracking 2020-02-28 17:32:05 -03:00
ReinUsesLisp 6e186f819b gl_state: Remove clip control tracking 2020-02-28 17:31:57 -03:00
ReinUsesLisp 8b76fc1fff gl_state: Remove clip distances tracking 2020-02-28 17:26:26 -03:00
ReinUsesLisp 86936bcf40 gl_state: Remove rasterizer disable tracking 2020-02-28 17:25:28 -03:00
ReinUsesLisp b810da8400 gl_state: Remove viewport and depth range tracking 2020-02-28 17:25:18 -03:00
ReinUsesLisp 0b91f473a0 gl_state: Remove scissor test tracking 2020-02-28 17:00:23 -03:00
ReinUsesLisp 715ae82639 gl_state: Remove color mask tracking 2020-02-28 16:59:17 -03:00
ReinUsesLisp e96c0d880a gl_state: Remove clamp framebuffer color tracking
This commit doesn't reset it for screen draws because clamping doesn't
change anything there.
2020-02-28 16:58:30 -03:00
ReinUsesLisp 6825128d89 gl_state: Remove multisample tracking 2020-02-28 16:57:47 -03:00
ReinUsesLisp d246878a22 gl_state: Remove framebuffer sRGB tracking 2020-02-28 16:55:23 -03:00
ReinUsesLisp d7935f5d7e gl_state: Remove VAO cache and tracking 2020-02-28 16:54:37 -03:00
ReinUsesLisp 0bd84bf355 gl_state: Remove depth clamp tracking 2020-02-28 16:53:35 -03:00
ReinUsesLisp 1d5db114fb gl_state: Remove depth tracking 2020-02-28 16:52:46 -03:00
ReinUsesLisp c26ea80ae3 gl_state: Remove primitive restart tracking 2020-02-28 16:51:45 -03:00
ReinUsesLisp 3144e7be89 gl_state: Remove logic op tracker 2020-02-28 16:51:23 -03:00
ReinUsesLisp 8d5f627d8d gl_state: Remove blend color tracking 2020-02-28 16:50:58 -03:00
ReinUsesLisp 84d4ac72ff gl_state: Remove polygon offset tracking 2020-02-28 16:49:20 -03:00
ReinUsesLisp cbc174ce6f gl_state: Remove alpha test tracking 2020-02-28 16:48:57 -03:00
ReinUsesLisp b5d8b842a1 gl_state: Remove cull mode tracking 2020-02-28 16:48:23 -03:00
ReinUsesLisp 1736a04693 gl_state: Remove front face tracking 2020-02-28 16:47:59 -03:00
ReinUsesLisp 8366870b35 gl_state: Remove point size tracking 2020-02-28 16:39:44 -03:00
ReinUsesLisp c158d37e68 gl_rasterizer: Add oglEnablei helper 2020-02-28 16:39:44 -03:00
ReinUsesLisp 7cc8204131 gl_rasterizer: Add OpenGL enable/disable helper 2020-02-28 16:39:44 -03:00
ReinUsesLisp c2d3732176 gl_rasterizer: Remove dirty flags 2020-02-28 16:39:27 -03:00
ReinUsesLisp c8c3fc647d common/math_util: Support float type rectangles 2020-02-28 16:22:11 -03:00
bunnei 8633ca172e renderer_opengl: Fix SRGB presentation frame tracking.
- Fixes SRGB in Super Smash Bros. Ultimate.
2020-02-28 01:13:38 -05:00
Nguyen Dac Nam a775209d1b shader_decode: Fix LD, LDG when track constant buffer 2020-02-28 13:11:19 +07:00
Morph c6e07faf25 Create an "Advanced" tab in the graphics configuration tab and add anisotropic filtering levels. 2020-02-27 21:34:00 -05:00
bunnei 3b7528d736 Merge pull request #3430 from bunnei/split-presenter
Port citra-emu/citra#4940: "Split Presentation thread from Render thread"
2020-02-27 19:51:55 -05:00
bunnei c928b07625 renderer_opengl: Reduce swap chain size to 3. 2020-02-27 19:50:17 -05:00
Morph 055ebfc2e7 AM/ICommonStateGetter: Stub SetLcdBacklighOffEnabled (#3454)
* Stub SetLcdBacklighOffEnabled

Used by Super Smash Bros. Ultimate
We require backlight services to be implemented to turn on/off the backlight.

* Address feedback
2020-02-27 17:49:23 +01:00
Nguyen Dac Nam bb39862dfe shader: FMUL switch to using LUT (#3441)
* shader: add FmulPostFactor LUT table

* shader: FMUL apply LUT

* Update src/video_core/engines/shader_bytecode.h

Co-Authored-By: Mat M. <mathew1800@gmail.com>

* nit: mistype

* clang-format & add missing import

* shader: remove post factor LUT.

* shader: move post factor LUT to function and fix incorrect order.

* clang-format

* shader: FMUL: add static to post factor LUT

* nit: typo

Co-authored-by: Mat M. <mathew1800@gmail.com>
2020-02-27 11:14:25 -05:00
bunnei 0e5233098f renderer_opengl: Use more concise lock syntax. 2020-02-26 18:35:35 -05:00
bunnei cba9bdcab0 renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace. 2020-02-26 18:28:50 -05:00
ReinUsesLisp 3056f6d364 vk_swapchain: Silence TOCTOU race condition
It's possible that the window is resized from the moment we ask for its
size to the moment a swapchain is created, causing validation issues.

To workaround this Vulkan issue request the capabilities again just
before creating the swapchain, making the race condition less likely.
2020-02-26 17:07:18 -03:00
Fernando Sahmkow 2f55c11a35 ARM_Interface: Cache the JITs instead of deleting/recreating.
This was a bug inherited from citra which was fixed by then at some 
time. This commit corrects such bug and ensures JITs are correctly 
recycled.
2020-02-26 15:53:47 -04:00
bunnei 3cb09e3570 Merge pull request #3440 from namkazt/patch-6
shader: implement LOP3 fast replace for old function
2020-02-26 10:24:35 -05:00
bunnei e32ba13702 Merge pull request #3431 from CJBok/npad-fix
InputCommon: analog_from_button get direction implementation
2020-02-25 21:39:26 -05:00
bunnei 61f86b0058 renderer_opengl: Create gl_framebuffer_data if empty. 2020-02-25 21:23:02 -05:00
bunnei 0f0268bdd9 frontend: qt: bootmanager: Acquire a shared context in main emu thread. 2020-02-25 21:23:02 -05:00
bunnei ba6d264342 frontend: qt: bootmanager: Vulkan: Restore support for VK backend. 2020-02-25 21:23:01 -05:00
bunnei 02f323f6e8 frontend: qt: bootmanager: OpenGL: Implement separate presentation thread. 2020-02-25 21:23:01 -05:00
bunnei 1be85d7b7d frontent: qt: main: Various updates/refactoring for separate presentation thread. 2020-02-25 21:23:00 -05:00
bunnei f1f2405b9f core: frontend: Refactor scope_acquire_window_context to scope_acquire_context. 2020-02-25 21:23:00 -05:00
bunnei 6904e8442d frontend: sdl2: emu_window: Implement separate presentation thread. 2020-02-25 21:23:00 -05:00
bunnei 361819a125 renderer_opengl: Add texture mailbox support for presenter thread. 2020-02-25 21:22:59 -05:00
bunnei 44137628c8 renderer_opengl: Add OGLRenderbuffer to resource/state management. 2020-02-25 21:22:58 -05:00
bunnei 27e56facc9 core: frontend: emu_window: Add TextureMailbox class. 2020-02-25 21:22:57 -05:00
bunnei f93fe8e862 core: settings: Add setting to enable vsync, which is on by default. 2020-02-25 20:57:02 -05:00
Mat M cb35b369bb Merge pull request #3461 from ReinUsesLisp/r32i-rt
video_core/surface: Add R32_SINT render target format
2020-02-25 17:47:14 -05:00
Mat M 0566dfddb5 Merge pull request #3460 from ReinUsesLisp/unused-format-getter
video_core/gpu: Remove unused functions
2020-02-25 17:46:07 -05:00
ReinUsesLisp 74984326b0 video_core/surface: Add R32_SINT render target format 2020-02-25 17:19:34 -03:00
ReinUsesLisp 30ed1b0702 video_core/gpu: Remove unused functions 2020-02-25 16:53:47 -03:00
bunnei 75487d9d84 Merge pull request #3417 from ReinUsesLisp/r32i
texture: Implement R32I
2020-02-25 14:08:45 -05:00
bunnei 80e577e2a6 Merge pull request #3425 from ReinUsesLisp/layered-framebuffer
texture_cache: Implement layered framebuffer attachments
2020-02-24 10:14:50 -05:00
ReinUsesLisp e88187cfa0 vk_shader_decompiler: Implement indexed textures
Implement accessing textures through an index. It uses the same
interface as OpenGL, the main difference is that Vulkan bindings are
forced to be arrayed (the binding index doesn't change for stacked
textures in SPIR-V).
2020-02-24 01:26:07 -03:00
ReinUsesLisp 043d94e858 shader: Simplify indexed sampler usages 2020-02-24 01:26:07 -03:00
ReinUsesLisp 367ade1151 video_core: Implement more scaler attribute formats
While changing this, fix assert in vk_shader_decompiler. We now know
scaled formats are expected to be float in shaders attributes.
2020-02-24 00:27:37 -03:00
bunnei f840aa27af Merge pull request #3424 from ReinUsesLisp/spirv-layer
vk_shader_decompiler: Implement Layer output attribute
2020-02-22 23:45:16 -05:00
bunnei 20c01b5dbd Merge pull request #3422 from ReinUsesLisp/buffer-flush
surface_base: Implement texture buffer flushes
2020-02-22 23:09:50 -05:00
bunnei dc92c1b1ee audio_core: interpolate: Improvements to fix audio crackling.
- Fixes audio crackling in Crash Team Racing Nitro-Fueled, Super Mario Odyssey, and others.
- Addresses followup issues from #3310.
2020-02-22 22:26:16 -05:00
Fernando Sahmkow d0b12c793d Scheduler: Inline global scheduler in Scheduler Lock. 2020-02-22 12:39:17 -04:00
Fernando Sahmkow d6584d988f Kernel: Correct pending feedback. 2020-02-22 11:51:03 -04:00
Fernando Sahmkow 8a079a59ed System: Expose Host thread registering routines from kernel. 2020-02-22 11:18:07 -04:00
Fernando Sahmkow 78f01601d0 Kernel: Address Feedback. 2020-02-22 11:18:07 -04:00
Fernando Sahmkow 7c2b72bcef Kernel: Implement Scheduler locks 2020-02-22 11:18:07 -04:00
Fernando Sahmkow fe53ac3e33 Kernel: Implement Time Manager. 2020-02-22 11:18:07 -04:00
Fernando Sahmkow e6cc0a48e0 Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel. 2020-02-22 11:18:06 -04:00