1b41b875dc
shaders: Add NumTextureSamplers const, remove unused #pragma.
2018-04-14 18:50:06 -04:00
e6224fec27
shaders: Address PR review feedback.
2018-04-14 16:01:41 -04:00
eabeedf6af
gl_shader_decompiler: Cleanup log statements.
2018-04-14 16:01:41 -04:00
0d408b965b
shaders: Fix GCC and clang build issues.
2018-04-14 16:01:40 -04:00
86135864da
gl_shader_decompiler: Implement negate, abs, etc. and lots of cleanup.
2018-04-14 16:01:40 -04:00
7639667562
shader_bytecode: Add FSETP and KIL to GetInfo.
2018-04-14 16:01:40 -04:00
5a47832221
shader_bytecode: Add SubOp decoding.
2018-04-14 16:01:40 -04:00
50023bdae7
gl_shader_decompiler: Add shader stage hint.
2018-04-14 16:01:39 -04:00
a992aac5eb
renderer_opengl: Fix Morton copy byteswap, etc.
2018-04-14 16:01:39 -04:00
0ca8fce9d0
gl_shader_manager: Implement SetShaderSamplerBindings.
2018-04-13 23:48:30 -04:00
beddc8afd2
gl_rasterizer: Generate shaders and upload uniforms.
2018-04-13 23:48:29 -04:00
85d77a3d24
gl_shader_decompiler: Basic impl. for very simple vertex shaders.
...
- Tested with Puyo Puyo Tetris and Cave Story+
2018-04-13 23:48:28 -04:00
51f37f5061
gl_shader_manager: Cleanup and consolidate uniform handling.
2018-04-13 23:48:28 -04:00
35aca0bf1f
maxwell_3d: Make memory_manager public.
2018-04-13 23:48:27 -04:00
33bb53571b
maxwell_3d: Fix shader_config decodings.
2018-04-13 23:48:26 -04:00
5617831d5f
gl_rasterizer: Use shader program manager, remove test shader.
2018-04-13 23:48:26 -04:00
459826a705
renderer_opengl: Add gl_shader_manager class.
2018-04-13 23:48:25 -04:00
8aa21a03b3
maxwell_to_gl: Add a few types, etc.
2018-04-13 23:48:24 -04:00
10953495c1
gl_shader_gen: Add hashable setup/config structs.
2018-04-13 23:48:23 -04:00
2fcbb35ad2
gl_shader_util: Add missing includes.
2018-04-13 23:48:23 -04:00
da1114ca59
renderer_opengl: Use OGLProgram instead of OGLShader.
2018-04-13 23:48:21 -04:00
4f2b2d0bc5
gl_shader_util: Grab latest upstream.
2018-04-13 23:48:21 -04:00
dbfd106ba0
gl_resource_manager: Grab latest upstream.
2018-04-13 23:48:20 -04:00
ed7e597b44
gl_shader_decompiler: Add skeleton code from Citra for shader analysis.
2018-04-13 23:48:20 -04:00
4e7e0f8112
shader_bytecode: Add initial module for shader decoding.
2018-04-13 23:48:19 -04:00
0b855f1c21
Fix clang format issues
2018-04-06 22:00:48 -06:00
dcc27d6dc1
GPU: Assert when finding a texture with a format type other than UNORM.
2018-04-06 20:44:46 -06:00
b0ca330e14
GL: Set up the textures used for each draw call.
...
Each Maxwell shader stage can have an arbitrary number of textures, but we're limited to a certain number in OpenGL. We try to only use the minimum amount of host textures by not keeping a 1:1 relation between guest texture ids and host texture ids, ie, guest texture id 8 can be host texture id 0 if it's the only texture used in the guest shader program.
This mapping will have to be passed to the shader decompiler so it can rewrite the texture accesses.
2018-04-06 20:44:46 -06:00
cb3183212d
GL: Bind the textures to the shaders used for drawing.
2018-04-06 20:44:46 -06:00
65faeb9b2a
GLCache: Specialize the MortonCopy function for the DXT1 texture format.
...
It will now use the UnswizzleTexture function instead of the MortonCopyPixels128, which doesn't seem to work for textures.
2018-04-06 20:44:46 -06:00
b258403f0d
GLCache: Implemented GetTextureSurface.
2018-04-06 20:44:45 -06:00
65ea52394b
GLCache: Support uploading compressed textures to the GPU.
...
Compressed texture formats like DXT1, DXT2, DXT3, etc will use this to ease the load on the CPU.
2018-04-06 20:44:45 -06:00
73eaef9c05
GL: Remove remaining references to 3DS-specific pixel formats
2018-04-06 20:44:42 -06:00
b305646c44
RasterizerCache: Remove 3DS-specific pixel formats.
...
We're only left with RGB8 and DXT1 for now. More will be added as they are needed.
2018-04-06 20:40:24 -06:00
c28ed85875
GL: Create the sampler objects when starting up the GL rasterizer.
2018-04-06 20:40:24 -06:00
ca96b04a0c
GL: Ported the SamplerInfo struct from citra.
2018-04-06 20:40:24 -06:00
0171ec606b
GL: Rename PicaTexture to MaxwellTexture.
2018-04-06 20:40:24 -06:00
f73a280eeb
GL: Added functions to convert Maxwell tex filters and wrap modes to OpenGL.
2018-04-06 20:40:23 -06:00
ad1810e895
Textures: Added a helper function to know if a texture is blocklinear or pitch.
2018-04-06 20:40:23 -06:00
d1d7582a5b
rasterizer_interface.h: Update from citra to yuzu
2018-04-04 23:07:58 +02:00
27dbbd8227
gl_rasterizer_cache.cpp: Update from citra to yuzu
2018-04-04 23:05:10 +02:00
cfc28e0c1a
gl_rasterizer_cache.h: Update from citra to yuzu
2018-04-04 23:04:24 +02:00
ca17f581f5
renderer_opengl.h: Update from citra to yuzu
2018-04-04 23:03:02 +02:00
11b4ab9685
GPU: Use the MacroInterpreter class to execute the GPU macros instead of HLEing them.
2018-04-01 12:07:26 -05:00
1ec8d2123d
GPU: Implemented a gpu macro interpreter.
...
The Ryujinx macro interpreter and envydis were used as reference.
Macros are programs that are uploaded by the games during boot and can later be called by writing to their method id in a GPU command buffer.
2018-04-01 12:07:26 -05:00
5e343edc9e
renderer_opengl: Use better naming for DrawScreens and DrawSingleScreen.
2018-03-26 21:17:07 -04:00
c33abac275
gl_rasterizer: Move code to bind framebuffer surfaces before draw to its own function.
2018-03-26 21:17:05 -04:00
d30110348b
gl_rasterizer: Add a SyncViewport method.
2018-03-26 21:17:04 -04:00
67bc2f5ecd
gl_rasterizer: Move PrimitiveTopology check to MaxwellToGL.
2018-03-26 21:17:03 -04:00
666d53299c
graphics_surface: Fix merge conflicts.
2018-03-26 21:17:03 -04:00