Age | Commit message (Collapse) | Author |
|
Fall back to interpreter for now. This doesn't happen very often.
|
|
SOA dependencies can happen when a register is used both as a source and
destination and the source is swizzled. For example:
MOV T, T.yxwz; would expand into:
MOV t0, t1;
MOV t1, t0;
MOV t2, t3;
MOV t3, t2;
The second instruction will produce the wrong result since we wrote to t0
in the first instruction. We need to use an intermediate temporary to fix
this.
This will take more work to fix for all TGSI instructions. This seems to
happen with MOV instructions more than anything else so fix that case now
and warn on others.
Fixes piglit glsl-vs-loop test (when not using SSE). See bug 23317.
|
|
Users of the parser can make use of this.
|
|
|
|
Fixes piglit fp-generic tests/shaders/generic/lrp_sat.fp, bug 23316.
|
|
This previously was used only for decomposed (POINT/LINE/TRI) primitives,
but for some time a full range of primitives could end up in here.
Fixes trivial/lineloop-clip on softpipe, among others.
(cherry picked from commit 87cd8a3b8a2407b30916be418ff2f95dfea5d2ad)
|
|
Check that the dest surface/format is renderable.
|
|
|
|
|
|
|
|
|
|
A comment alluded to this. Now it's checked.
|
|
For the surface_copy() path require same format, no flipping and no stretching.
Fixes progs/tests/copypixrate -blit
|
|
|
|
The leading underscore is meaningful... This function is used by
_warning and _error functions as well as the more common
debug_printf().
debug_printf (without underscore) gets turned off when DEBUG is
disabled, but warning/error messages still use this function to get
their message out.
(cherry picked from commit 0ac879dca797360570543d5bd0fd64f8fb8e566e)
|
|
|
|
|
|
Same story as in the tgsi_dump.c code (see prev commit).
|
|
Fixes TGSI dump output when front/back-face register is declared.
Also, add some assertions to make sure the semantic/interpolate string
arrays have as many elements as there are tokens in the p_shader_tokens.h
file. That should catch problems like this in the future.
|
|
Includes the TGSI interpreter, but not the SSE/PPC/etc code generators.
|
|
Also fix one case where a 32 bit depth value was incorrectly converted to a
combined depth/stencil value.
|
|
According to http://unixwiz.net/techtips/outputdebugstring.html that's
how big the buffer is.
The 512bytes limitation is in kernel mode.
|
|
buffer_flush_mapped_range.
|
|
We were failing to deal with:
- vsnprintf returns negative value on error.
- vsnprintf returns the number of chars that *would* have been
written on truncation.
|
|
Theoretical bugfix only - no known case where this might happen.
|
|
It is expected to loose precision here.
|
|
Using uintptr_t as intermediate type for pointer -> integer conversions is
easier to understand and does not cause any size mismatch warnings.
uintptr_t is part of C99, and we already provide a suitable replacement
definition for all platforms we care about.
|
|
Avoids warnings on 64bit builds.
Use regular unsigned since that's what gallium expects, but use a
typedef to facilitate possible changes in the future.
|
|
As we're only using 32bit bitmasks.
|
|
|
|
|
|
|
|
|
|
|
|
When approaching y = x * 0xffffffff / 0xffffff with bit arithmetic, the
8 least significant bits of y should come from the
8 most significant bits of x.
|
|
The pstipple, aaline and aapoint code would create specialized versions
of shaders and upload them to the driver -- but never free them.
|
|
The AA line and point code also needs to free token arrays after
building driver shaders.
|
|
Add missing FREE() after MALLOC().
|
|
Fixes a crash when clearing the window with a quad after drawing large
points. We were asking the draw module how many vertex shader outputs
there were and got 3 instead of 2. This led to creating vertices with
too many attributes and trying to read invalid memory.
We reset extra_vp_outputs.slot to zero in the aaline/aapoint stage's
flush functions already.
This omission was just an oversight in the wide_point stage.
|
|
Caller may be able to do something about this - eg flush and retry.
|
|
|
|
Add a dummy function which exists only so that tgsi_text_translate()
doesn't get magic-ed out of the libtgsi.a archive by the build system.
Don't remove unless you know this has been fixed - check on
mingw/scons builds as well.
|
|
|
|
|
|
|
|
We need to use (s,t,r) cubemap coords when sampling from the cubemap texture
so the rendered quad gets texture samples from the correct cube face.
|
|
The TGSI interpeter operates in SOA style. We need to check for data
dependencies in instructions which read from and write to the same register.
For now just adding some debug code to detect that condition. Actual fixes
to follow.
|
|
|
|
|
|
|