Age | Commit message (Collapse) | Author |
|
This enables the new shadow texture functions in GLSL 1.30.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@intel.com>
|
|
Change swizzle from (x000) to (x001).
Signed-off-by: Chad Versace <chad.versace@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
|
The assignment on line 368, `tex_swizzles[i] = SWIZZLE_NOOP`, is rendered
dead by the reassignment on line 392.
Signed-off-by: Chad Versace <chad.versace@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
|
It's a generic function capable of storing A8, L8, I8, R8.
|
|
This was probably missed when implementing luminance and luminance alpha
render targets.
_mesa_get_format_bits checks for both GL_*_BITS and GL_TEXTURE_*_SIZE.
This fixes:
main/framebuffer.c:892: _mesa_source_buffer_exists: Assertion `....' failed.
|
|
The r300 compiler can eliminate unused uniforms and remap uniform locations
if their number surpasses hardware limits, so the limit is actually
NumParameters + NumUnusedParameters. This is important for some apps
under Wine to run.
Wine sometimes declares a uniform array of 256 vec4's and some Wine-specific
constants on top of that, so in total there is more uniforms than r300 can
handle. This was the main motivation for implementing the elimination
of unused constants.
We should allow drivers to implement fail & recovery paths where it makes
sense, so giving up too early especially when comes to uniforms is not
so good idea, though I agree there should be some hard limit for all drivers.
This patch fixes:
- glsl-fs-uniform-array-5
- glsl-vs-large-uniform-array
on drivers which can eliminate unused uniforms.
|
|
This reverts commit 7cb87dffce2c7a37f960f3a865cf92fd193dd8c5.
There were regressions (Bug #35244) and more review has been requested.
|
|
gl_shader_program"
This reverts commit b4452c3baad6e0379eeb7f22f2e51d13999e1323.
|
|
This reverts commit 81b34a4e3a7aec9cdf2781757408dc5e9eec79cb. There
were regressions in the core change that this depends on.
|
|
|
|
Blits between sRGB and linear formats should happen in linear color space.
This fixes piglit fbo/fbo-srgb-blit.
|
|
The docs say it can be set for direct texture lookups, but even that
causes problems.
This fixes the wireframe bug:
https://bugs.freedesktop.org/show_bug.cgi?id=32688
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
|
This fixes piglit:
- glsl-fs-texture2d-dependent-4
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
|
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
|
(1, -_, ...) was converted to (-1, ...) because of the negation
in the second component.
Masking out the unused bits fixes this.
Piglit:
- glsl-fs-texture2d-branching
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
|
This finishes the implementation of the fragment color clamp control
for ARB_color_buffer_float. I don't wanna keep this stuff in a branch...
|
|
This bug can only be triggered if the source texture is either signed or float.
|
|
nouveau_vieux_dri.so.tmp: undefined reference to `_mesa_need_secondary_color'
|
|
r600_dri.so.tmp: undefined reference to `_mesa_rgba_logicop_enabled'
|
|
|
|
This gets one more piece of the pipeline onto the new codegen backend.
Once ARB_fragment_program can generate GLSL programs, we can nuke the
old backend.
|
|
This is like how we track FragmentProgram._Current for the computed
ARB fragment program for fixed function texenv, but this gives direct
access to the gl_shader_program for drivers to codegen from, skipping
ARB_fp.
|
|
This is a step towards providing a direct route for drivers accepting
GLSL IR for codegen. Perhaps more importantly, it runs the fixed
function fragment program through the GLSL IR optimization. Having
seen how easy it is to make ugly fixed function texenv code that can
do unnecessary work, this may improve real applicatinos.
|
|
It would be nice if we handled optimized uniform math like this in
some generic way, since people often end up doing uniform expressions
in shaders, but for now keep this hard-coded like it was in the
texenvprogram code.
|
|
For fixed function fragment processing in GLSL IR, we want to be able
to reference this state value. gl_* not explicitly permitted is
reserved, so using this variable name internally shouldn't be any
issue.
|
|
This file is about to change to generating a shader program instead of
a fragment program.
|
|
This is used in the upcoming fixed function shader_program generation,
and shader_program and ARB programs are together in this code until
both fragment and vertex ff get converted.
|
|
It fails on assertions if the key isn't actually present.
|
|
|
|
The drivers have been changed so that they behave as if all of the flags
were set. This is already implicit in most hardware drivers and required
for multiple contexts.
Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag
to decide whether flush_frontbuffer should be called.
New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement.
|
|
|
|
So that they don't have the driver-specific param and return type.
|
|
Since we're compiling/linking GLSL shaders we should check against
the shader uniform limits, not the legacy vertex/fragment program
parameter limits which are usually lower.
|
|
The gl_program_constants struct is for limits that are applicable to
any/all shader stages. Move the geometry shader-only fields into the
gl_constants struct.
Remove redundant MaxGeometryUniformComponents field too.
|
|
Without these checks we could create shaders with more samplers,
constants than the driver could handle. Fail linking rather than
dying later.
|
|
and rename them.
|
|
Need to flush rendering (or at least indicate that the rug might be getting
pulled out from underneath us) when a shader, buffer object or query object
is about to be deleted.
Also, this helps to tell the VBO module to unmap its current vertex buffer.
|
|
The framebuffer cache flush should be implicit when calling
set_framebuffer_state.
There is no need to flush the command stream either.
|
|
This is an expected behavior when we're testing for the presence of
new kernel features.
|
|
Improves performance of a hacked-up scissor-many (to reuse a small set
of scissors instead of blowing out the cache, and then to run 100x
more iterations so it actually took some time) by 3.6% +/- 1.2% (n=10)
|
|
This is a follow-up to the ARB_sync patch for st/mesa and completes
the ARB_sync implementation.
|
|
The ServerWaitSync implementation matches Intel's driver.
The extension is advertised when pipe_screen::fence_finish is set.
|
|
|
|
softpipe passes all tests.
|
|
LUMINANCE_ALPHA_LATC2 = LUMINANCE_ALPHA_3DC, so this is easy.
Note that there is no specification for 3DC, just a few white papers
from ATI.
|
|
The encoding/decoding algorithms are shared with RGTC.
Thanks to some magic with the base format, the RGTC texstore functions work
for LATC too.
swrast passes the related piglit tests besides two things:
- The alpha channel is wrong (it's always 1), however the incorrect alpha
channel makes some other tests fail too, so I guess it's unrelated to LATC.
- Signed LATC fetches aren't correct yet (signed values are clamped to [0,1]),
however RGTC has the same problem.
Further testing (with other of my patches) shows that hardware drivers
and softpipe work.
BTW, ETQW uses this extension.
|
|
st->user_vb[attr] was always pointing to the same user vb, regardless
of the value of attr. Together with reverting the temporary workaround
for bug 34378, and a fix in the svga driver, this fixes googleearth on svga.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
|
|
This fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=34378
|
|
|
|
|