17ad56c1dc
Merge pull request #356 from lioncash/shader
...
glsl_shader_decompiler: Minor API changes to ShaderWriter
2018-04-19 21:09:25 -04:00
e3b6f6c016
glsl_shader_decompiler: Use std::string_view instead of std::string for AddLine()
...
This function doesn't need to take ownership of the string data being
given to it, considering all we do is append the characters to the
internal string instance.
Instead, use a string view to simply reference the string data without
any potential heap allocation.
Now anything that is a raw const char* won't need to be converted to a
std::string before appending.
2018-04-19 20:12:58 -04:00
412b31ad72
glsl_shader_decompiler: Add AddNewLine() function to ShaderWriter
...
Avoids constructing a std::string just to append a newline character
2018-04-19 20:09:27 -04:00
aa26baa3db
glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()
...
Avoids constructing a std::string just to append a character.
2018-04-19 20:04:09 -04:00
4ef392906b
glsl_shader_decompiler: Append indentation without constructing a separate std::string
...
The interface of std::string already lets us append N copies of a
character to an existing string.
2018-04-19 19:59:25 -04:00
fe84842137
ShaderGen: Implemented the fmul32i shader instruction.
2018-04-19 13:46:32 -05:00
5367935d35
ShaderGen: Fixed a case where the TEXS instruction would use the same registers for the input and the output.
...
It will now save the coords before writing the outputs in a subscope.
2018-04-19 13:33:17 -05:00
057170928c
GPU: Add support for the DXT23 and DXT45 compressed texture formats.
2018-04-18 20:48:53 -05:00
60e6e8953e
Merge pull request #351 from Subv/tex_formats
...
GPU: Implemented the B5G6R5 format.
2018-04-18 20:20:51 -04:00
2985056340
GPU: Implemented the B5G6R5 format.
2018-04-18 18:16:45 -05:00
ce4f159b1c
gl_shader_gen: Support vertical/horizontal viewport flipping. ( #347 )
...
* gl_shader_gen: Support vertical/horizontal viewport flipping.
* fixup! gl_shader_gen: Support vertical/horizontal viewport flipping.
2018-04-18 16:42:40 -04:00
43d98ca8fe
GLCache: Added boilerplate code to make supporting configurable texture component types.
...
For now only the UNORM type is supported.
2018-04-18 14:17:28 -05:00
5b3fab6766
GLCache: Unify texture and framebuffer formats when converting to OpenGL.
2018-04-18 14:17:28 -05:00
b2c1672e10
GPU: Texture format 8 and framebuffer format 0xD5 are actually ABGR8.
2018-04-18 14:17:27 -05:00
48d4efbd69
GPU: Pitch textures are now supported, don't assert when encountering them.
2018-04-18 12:52:53 -05:00
a3e82e8e1f
GLCache: Take into account the texture's block height when caching and unswizzling.
2018-04-18 12:52:53 -05:00
ac09b5a2e9
GLCache: Added a function to convert cached PixelFormats back to texture formats.
...
TODO: The way we handle cached formats must change, framebuffer and texture formats are too different to keep them in the same place.
2018-04-18 12:52:52 -05:00
6b63aaa5b4
GPU: Allow using a configurable block height when unswizzling textures.
2018-04-18 12:52:51 -05:00
db5f2bfa7e
GPU/TIC: Added the pitch and block height fields to the TIC structure.
2018-04-18 11:38:39 -05:00
c93ea96366
Merge pull request #346 from bunnei/misc-gpu-improvements
...
Misc gpu improvements
2018-04-17 22:17:07 -04:00
71b4a3b9f6
Merge pull request #344 from bunnei/shader-decompiler-p2
...
Shader decompiler changes part 2
2018-04-17 22:10:53 -04:00
7222d9a4c3
gl_rasterizer_cache: Add missing LOG statements.
2018-04-17 21:44:36 -04:00
9df8e924fb
texture: Add missing formats.
2018-04-17 21:41:36 -04:00
3ed8a1cac7
gpu: Add several framebuffer formats to RenderTargetFormat.
2018-04-17 21:40:38 -04:00
4a8eb6745e
maxwell3d: Allow Texture2DNoMipmap as Texture2D.
2018-04-17 21:39:15 -04:00
531c25386e
shader_bytecode: Make ctor's constexpr and explicit.
2018-04-17 21:27:07 -04:00
174cba5c58
renderer_opengl: Implement BlendEquation and BlendFunc.
2018-04-17 18:11:48 -04:00
1f6fe062ca
gl_shader_decompiler: Fix warnings with MarkAsUsed.
2018-04-17 16:36:44 -04:00
ed542a7309
gl_shader_decompiler: Cleanup logging, updating to NGLOG_*.
2018-04-17 16:36:44 -04:00
ef2d5ab0c1
gl_shader_decompiler: Implement several MUFU subops and abs_d.
2018-04-17 16:36:43 -04:00
59f4ff4659
gl_shader_decompiler: Fix swizzle in GetRegister.
2018-04-17 16:36:42 -04:00
5a28dce9eb
gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions.
2018-04-17 16:36:42 -04:00
8d4899d6ea
gl_shader_decompiler: Allow vertex position to be used in fragment shader.
2018-04-17 16:36:40 -04:00
95144cc39c
gl_shader_decompiler: Implement IPA instruction.
2018-04-17 16:36:39 -04:00
8b4443c966
gl_shader_decompiler: Add support for TEXS instruction.
2018-04-17 16:36:38 -04:00
5ba71369ac
gl_shader_decompiler: Use fragment output color for GPR 0-3.
2018-04-17 15:25:54 -04:00
5d529698c9
gl_shader_decompiler: Partially implement MUFU.
2018-04-17 15:25:54 -04:00
2b082e2710
Merge pull request #343 from Subv/tex_wrap_4
...
GPU: Implement some wrap modes
2018-04-17 12:25:24 -04:00
636ad34707
MaxwellToGL: Implemented tex wrap mode 1 (Wrap, GL_REPEAT).
2018-04-17 10:17:18 -05:00
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