| Age | Commit message (Collapse) | Author |
|
Fixes a situation where the following invalid GLSL code is generated:
```glsl
float3 texSample0 = texture(samp0, float3(uv0 + float2(0, 0) * sample_offset, 0.0)).rgb;
float3 texSample0 = floor(float3 texSample0 * 63.0) / 63.0;
float3 texSample1 = texture(samp0, float3(uv0 + float2(1, 0) * sample_offset, 0.0)).rgb;
float3 texSample1 = floor(float3 texSample1 * 63.0) / 63.0;
```
|
|
Currently, we use the alpha channel from the EFB even if the current
format does not include an alpha channel. Now, the alpha channel is set
to 1 if the format does not have an alpha channel, as well as truncating
to 5/6 bits per channel. This matches the EFB-to-texture behavior.
|
|
|
|
|
|
|
|
|
|
This also shifts the SSBO index from index 3 to index 0.
|
|
|
|
Allows for forward declarations in most places, which prevents dumping
unrelated VideoCommon.h contents directly into headers.
|
|
|
|
|
|
Also remedies places where the video backends and core rely on things
being indirectly included.
|
|
encode depth.
|
|
Addded a few duplicated depth copy texture formats to the enum
in TextureDecoder.h. These texture formats were already implemented
in TextureCacheBase and the ogl/dx11 texture cache implementations.
|
|
VideoCommon: Remove unused parameters
|
|
|
|
This reverts commit 0f2c72f0f844c219e168faa7de8dd515f8723fdc.
|
|
Credits go to Galop1n for designing this technique and to BhaaLseN for cleaning up the commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
On D3D, we read from the depth buffer using the format
DXGI_FORMAT_R24_UNORM_X8_TYPELESS (essentially, the "r" component contains
the depth, and the other components contain nothing).
|
|
|
|
|
|
Well, that's not strictly true, but trying to memcpy between two buffers
using different row lengths and different strides is at minimum extremely
unintuitive.
|
|
|
|
|
|
Since %f isn't used anymore in the shader generators, these can go.
|
|
|
|
Also remove unused pow2/pow2f functions.
|
|
|
|
Also remove unused pow2/pow2f functions.
|
|
In the cases where we support the binding layout keyword, use it for more than binding UBO location.
This changes it so it is supported for samplers as well.
Instances when this is enabled is if a device supports GL_ARB_shading_language_420pack, or if it supports GLES 3.10.
|
|
|
|
|
|
Noticed this while messing with EFB to RAM.
We were having an implicit conversion from integer to float, GLSL ES doesn't allow implicit conversion.
Changes it to a explicit conversion to float.
|
|
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
|
|
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
|
|
|
|
- remove unused variables
- reduce the scope where it makes sense
- correct limits (did you know that strcat()'s last parameter does not
include the \0 that is always added?)
- set some free()'d pointers to NULL
|
|
|
|
|
|
|
|
inline halfxb
So we know which is the first pixel by masking.
inline xl
inline xb a bit
inline yl
inline uv1.x shift
remove likely wrong guessed ternary operator
add pixel layout comment
inline xel
optimize the shifts a bit
inline xb
optimize shifts in a second step
extract xb
rename all variables
calculate cache line by position.x
Revert 5115b459f40d53044cd7a858f52e6e876e1211b4 "optimize the shifts a bit"
It seems I was wrong, the other way is the more natural.
use x_virtual_position instead of uv1.x for x_offset_in_block
This looks more natural and the offset should be masked anyway.
substitude factor with cache_lines
move 32bit logic in a conditional block
|
|
|
|
|
|
|