| Age | Commit message (Collapse) | Author |
|
|
|
These aren't used outside of it. This also reduces the amount of things in
the global namespace.
|
|
These actually convey a concrete type, as well as also providing a
symbolic constant during debugging.
|
|
|
|
The Star Wars games really push the hardware to its limits, which can cause the shaders that are produced to be 18kb or more.
Double our maximum shader size to compensate.
Fixes issue #8860
|
|
This bug has been reported to IMGTec at https://pvrsupport.imgtec.com/ticket/472
The basic idea of the bug is that if you're doing a bitwise and of a constant value vector with a constant scalar value, this causes PowerVR's shader
compiler to fail out with a very non-descriptive message.
Working around the issue by making the value a vector that it is being masked by.
|
|
|
|
Credits go to Galop1n for designing this technique and to BhaaLseN for cleaning up the commit.
|
|
Disable bbox
|
|
|
|
|
|
|
|
The zfreeze option freezes the depth plane of the rasterization.
So this is done before the TEV stages, where the z-textures are applied.
|
|
|
|
instead or rounding.
|
|
|
|
[fixed lint issues and grammar ~comex]
|
|
Partially fix WWE12 titantron videos.
|
|
|
|
The obvious question here is, why does it matter if we round or truncate?
The key is that GC/Wii does fixed-point interpolation, where PC GPUs do
floating-point interpolation. Discarding fractional bits makes the conversion
from floating-point to fixed point give more consistent results.
I'm not confident this is really the right fix, or that my explanation is
completely correct; ideally, we don't want to depend on floating-point
interpolation at all.
|
|
|
|
- Calculate ZSlope every flush but only set PixelShader Constant on Reset Buffer when zfreeze
- Fixed another Pixel Shader bug in D3D that was giving me grief
|
|
OpenGL requires the y coordinates to be flipped.
Also refactored PixelGen code to remove duplicate code.
|
|
Results are still not correct, but things are getting closer.
* Don't cull CULLALL primitives so early so they can be used as reference
planes.
* Convert CalculateZSlope to screenspace coordinates.
* Convert Pixelshader to screenspace coordinates (instead of worldspace
xy coordinates, which is totally wrong)
* Divide depth by 2^24 instead of clamping to 0.0-1.0 as was done
before.
Progress:
* Rouge Squadron 2/3 appear correct in game (videos in rs2 save file
selection are missing)
* Shadows draw 100% correctly in NHL 2003.
* Mario golf menu renders correctly.
* NFS: HP2, shadows sometimes render on top of car or below the road.
* Mario Tennis, courts and shadows render correctly, but at wrong depth
* Blood Omen 2, doesn't work.
|
|
Initial port of original zfreeze branch (3.5-1729) by neobrain into
most recent build of Dolphin.
Makes Rogue Squadron 2 very playable at full speed thanks to recent core
speedups made to Dolphin. Works on DirectX Video plugin only for now.
Enjoy! and Merry Xmas!!
|
|
|
|
Minor consistency changes
|
|
|
|
Mostly small changes, like capitalization and spelling
|
|
Previously it was packed into spare slots in clippos.xy and normal.w,
but it's ugly and more importantly it's causing bugs.
This was discovered during the debugging of a zfreeze branch, which
expected clippos.xy to be xy position coordinates in clipspace (as
the name suggested).
Turns out the stereoscopy shader had also run into this trap, modifying
clippos.x (introducing errors with per-pixel lighting).
This commit has been moved outside of the zfreeze PR for fast merging.
|
|
|
|
instead.
|
|
|
|
GL_ARB_shading_language_420pack is supported.
Some driver developers interpreted "can" as "must" in the OpenGL specs. (I'm looking at you AMD)
|
|
Fixes shaders for GPUs that don't support GL_ARB_shading_language_420pack.
|
|
are unsupported.
|
|
|
|
conflicts.
|
|
|
|
And remove the generator for it since it is no longer used outside of the geometry shader.
|
|
|
|
|
|
|
|
|
|
Add HW bounding Box support to d3d backend
|
|
Since %f isn't used anymore in the shader generators, these can go.
|
|
|
|
Just use regular boolean negation in our pixel shader's depth test everywhere except on Qualcomm.
This works around a bug in the Intel Windows driver where comparing a boolean value against true or false fails but boolean negation works fine.
Quite silly.
Should fix issues #7830 and #7899.
|
|
GLSL130 doesn't support passing structs between shaders.
This is not a problem for stereo 3D which has a GLSL150 requirement.
|
|
|