Lioncash
8594945844
renderer_opengl: Add missing header guards
2018-04-19 21:13:59 -04:00
bunnei
fd50308f39
Merge pull request #356 from lioncash/shader
...
glsl_shader_decompiler: Minor API changes to ShaderWriter
2018-04-19 21:09:25 -04:00
Lioncash
2259f5d56b
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
Lioncash
55fef54f2e
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
Lioncash
5a3da4f1a1
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
Lioncash
21fa39b4f6
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
Subv
4ca65f10b1
ShaderGen: Implemented the fmul32i shader instruction.
2018-04-19 13:46:32 -05:00
Subv
887db586be
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
Subv
37f782e1b7
GPU: Add support for the DXT23 and DXT45 compressed texture formats.
2018-04-18 20:48:53 -05:00
bunnei
0cdd457b01
Merge pull request #351 from Subv/tex_formats
...
GPU: Implemented the B5G6R5 format.
2018-04-18 20:20:51 -04:00
Subv
e9f62cb1bb
GPU: Implemented the B5G6R5 format.
2018-04-18 18:16:45 -05:00
bunnei
e8cc5900a6
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
Subv
d98275cde1
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
Subv
e6991c57e5
GLCache: Unify texture and framebuffer formats when converting to OpenGL.
2018-04-18 14:17:28 -05:00
Subv
d088a95097
GPU: Texture format 8 and framebuffer format 0xD5 are actually ABGR8.
2018-04-18 14:17:27 -05:00
Subv
19a0e7e141
GPU: Pitch textures are now supported, don't assert when encountering them.
2018-04-18 12:52:53 -05:00
Subv
fecaeb8ae6
GLCache: Take into account the texture's block height when caching and unswizzling.
2018-04-18 12:52:53 -05:00
Subv
19e0d8ca24
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
Subv
102251cb37
GPU: Allow using a configurable block height when unswizzling textures.
2018-04-18 12:52:51 -05:00
Subv
67c9964675
GPU/TIC: Added the pitch and block height fields to the TIC structure.
2018-04-18 11:38:39 -05:00
bunnei
b651578582
Merge pull request #346 from bunnei/misc-gpu-improvements
...
Misc gpu improvements
2018-04-17 22:17:07 -04:00
bunnei
0a119bf39b
Merge pull request #344 from bunnei/shader-decompiler-p2
...
Shader decompiler changes part 2
2018-04-17 22:10:53 -04:00
bunnei
ed447c8786
gl_rasterizer_cache: Add missing LOG statements.
2018-04-17 21:44:36 -04:00
bunnei
d4dcd3e720
texture: Add missing formats.
2018-04-17 21:41:36 -04:00
bunnei
848ade06d5
gpu: Add several framebuffer formats to RenderTargetFormat.
2018-04-17 21:40:38 -04:00
bunnei
de84b74dd4
maxwell3d: Allow Texture2DNoMipmap as Texture2D.
2018-04-17 21:39:15 -04:00
bunnei
797267eb58
shader_bytecode: Make ctor's constexpr and explicit.
2018-04-17 21:27:07 -04:00
bunnei
4d9c441bef
renderer_opengl: Implement BlendEquation and BlendFunc.
2018-04-17 18:11:48 -04:00
bunnei
48ab22ff76
gl_shader_decompiler: Fix warnings with MarkAsUsed.
2018-04-17 16:36:44 -04:00
bunnei
7ad31d2667
gl_shader_decompiler: Cleanup logging, updating to NGLOG_*.
2018-04-17 16:36:44 -04:00
bunnei
29ab89054d
gl_shader_decompiler: Implement several MUFU subops and abs_d.
2018-04-17 16:36:43 -04:00
bunnei
93388e3c6b
gl_shader_decompiler: Fix swizzle in GetRegister.
2018-04-17 16:36:42 -04:00
bunnei
c1408040a6
gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions.
2018-04-17 16:36:42 -04:00
bunnei
dbf1fb7e61
gl_shader_decompiler: Allow vertex position to be used in fragment shader.
2018-04-17 16:36:40 -04:00
bunnei
7fe43996de
gl_shader_decompiler: Implement IPA instruction.
2018-04-17 16:36:39 -04:00
bunnei
05305422e1
gl_shader_decompiler: Add support for TEXS instruction.
2018-04-17 16:36:38 -04:00
bunnei
69f5eadc2b
gl_shader_decompiler: Use fragment output color for GPR 0-3.
2018-04-17 15:25:54 -04:00
bunnei
fdca99c4fb
gl_shader_decompiler: Partially implement MUFU.
2018-04-17 15:25:54 -04:00
bunnei
09122ee37d
Merge pull request #343 from Subv/tex_wrap_4
...
GPU: Implement some wrap modes
2018-04-17 12:25:24 -04:00
Subv
d388e8e8f9
MaxwellToGL: Implemented tex wrap mode 1 (Wrap, GL_REPEAT).
2018-04-17 10:17:18 -05:00
Subv
b5fdd197b2
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
bunnei
ad8a27a7b3
gl_rendering: Use NGLOG* for changed code.
2018-04-16 21:23:28 -04:00
bunnei
65092bf8d8
gl_rasterizer: Implement indexed vertex mode.
2018-04-16 21:10:15 -04:00
Subv
ea9f5538c2
GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.
2018-04-15 15:02:50 -05:00
Subv
d8fdbefef6
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
Subv
1a31997264
GPU: Don't use GetPointer when uploading the constbuffer data to the GPU.
2018-04-15 11:18:09 -05:00
Subv
ffdc9e716d
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
bunnei
595d37d69a
shaders: Expose hints about used const buffers.
2018-04-15 11:50:10 -04:00
Subv
03cbd8f20f
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
Subv
ea730b69d1
GPU: Allow configuring ssbos in the opengl state manager.
2018-04-14 22:54:23 -05:00