7fc516cc1a
MaxwellToGL: Added a TODO and partial implementation of maxwell wrap mode 4 (Clamp, GL_CLAMP).
...
This clamp mode was removed from OpenGL as of 3.1, we can emulate it by using GL_CLAMP_TO_BORDER to get the border color of the texture, and then manually sampling the edge to mix them in the fragment shader.
2018-04-17 10:16:50 -05:00
77bdc49343
gl_rendering: Use NGLOG* for changed code.
2018-04-16 21:23:28 -04:00
1a1af3fda3
gl_rasterizer: Implement indexed vertex mode.
2018-04-16 21:10:15 -04:00
477aab5960
GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.
2018-04-15 15:02:50 -05:00
14ac40436e
GPU: Don't use explicit binding points when uploading the constbuffers to opengl.
...
The bindpoints will now be dynamically calculated based on the number of buffers used by the previous shader stage.
2018-04-15 14:14:57 -05:00
e128e90350
GPU: Don't use GetPointer when uploading the constbuffer data to the GPU.
2018-04-15 11:18:09 -05:00
7da47da66e
GPU: Use the buffer hints from the shader decompiler to upload only the necessary const buffers for each shader stage.
2018-04-15 11:15:54 -05:00
73d9c494ea
shaders: Expose hints about used const buffers.
2018-04-15 11:50:10 -04:00
c9b511da08
GPU: Upload the entirety of each constbuffer for each shader stage as SSBOs.
...
We're going to need the shader generator to give us a mapping of the actual used const buffers to properly bind them to the shader.
2018-04-14 23:02:05 -05:00
1957640ea2
GPU: Allow configuring ssbos in the opengl state manager.
2018-04-14 22:54:23 -05:00
ae58e46036
GPU: Added a function to determine whether a shader stage is enabled or not.
2018-04-14 22:54:23 -05:00
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