| Age | Commit message (Collapse) | Author |
|
Nvidia has sane default output values for varyings, but the other
vendors don't apply these. To properly emulate this we would have to
analyze the shader header. For the time being, apply the same default
Nvidia applies so we get the same behaviour on non-Nvidia drivers.
|
|
gl_rasterizer: Emulate viewport flipping with ARB_clip_control
|
|
|
|
shader: Implement FSWZADD and reimplement SHFL
|
|
video_core: Treat implicit conversions as errors
|
|
Enable sign conversion warnings but don't treat them as errors.
|
|
gl_shader_cache: Fix locker constructors
|
|
|
|
|
|
GLSLDecompiler: Correct Texture Gather Offset.
|
|
Properly pass engine when a shader is being constructed from memory.
|
|
Silence GLSL compilation warnings.
|
|
|
|
|
|
|
|
This commit corrects the argument ordering in textureGatherOffset.
|
|
shader/control_flow: Abstract repeated code chunks in BRX tracking
|
|
`boost::make_iterator_range` is available when `boost/range/iterator_range.hpp` is included.
Also include `boost/icl/interval_map.hpp` and `boost/icl/interval_set.hpp`.
|
|
shader_ir: Reduce severity of warnings
|
|
|
|
|
|
|
|
Emulates negative y viewports with ARB_clip_control. This allows us to
more easily emulated pipelines with tessellation and/or geometry shader
stages. It also avoids corrupting games with transform feedbacks and
negative viewports (gl_Position.y was being modified).
|
|
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
|
|
|
|
Remove copied and pasted for cycles into a common templated function.
|
|
|
|
These containers have a default constructor.
|
|
|
|
|
|
These warnings don't offer meaningful information while decoding
shaders. Remove them.
|
|
gl_rasterizer: Upload constant buffers with glNamedBufferSubData
|
|
shader/node: Unpack bindless texture encoding
|
|
Fermi2D: limit blit area to only available area
|
|
- Zero initialization here is useful for determinism.
|
|
Global memory is still using the stream buffer when it shouldn't. As a
temporary fix re-enable the stream buffer on compute.
|
|
Nvidia's OpenGL driver maps gl(Named)BufferSubData with some requirements
to a fast. This path has an extra memcpy but updates the buffer without
orphaning or waiting for previous calls. It can be seen as a better
model for "push constants" that can upload a whole UBO instead of 256
bytes.
This path has some requirements established here:
http://on-demand.gputechconf.com/gtc/2014/presentations/S4379-opengl-44-scene-rendering-techniques.pdf#page=24
Instead of using the stream buffer, this commits moves constant buffers
uploads to calls of glNamedBufferSubData and from my testing it brings a
performance improvement. This is disabled when the vendor is not Nvidia
since it brings performance regressions.
|
|
Originally on the last commit I thought TLD4 acted the same as TLD4S and
didn't have a mask. It actually does have a component mask. This commit
corrects that.
|
|
shader_ir: Fix TLD4 and add bindless variant
|
|
This commit fixes an issue where not all 4 results of tld4 were being
written, the color component was defaulted to red, among other things.
It also implements the bindless variant.
|
|
gl_state: Miscellaneous clean up
|
|
rasterizer_accelerated: Add intermediary for GPU rasterizers
|
|
Co-Authored-By: Mat M. <mathew1800@gmail.com>
|
|
This requires removing constness from some methods, but for consistency
it's removed in all methods.
|
|
OpenGL has defaults values we can trust. Remove these.
|
|
|
|
|
|
|
|
|
|
Bindless textures were using u64 to pack the buffer and offset from
where they come from. Drop this in favor of separated entries in the
struct.
Remove the usage of std::set in favor of std::list (it's not std::vector
to avoid reference invalidations) for samplers and images.
|