Age | Commit message (Collapse) | Author |
|
Several routines directly analyze the grf-to-mrf moves from the Gen
binary code. When it is possible, the mov is removed and the message
register is directly written in the arithmetic instruction
Also redundant mrf-to-grf moves are removed (frequently for example,
when sampling many textures with the same uv)
Code was tested with piglit, warsow and nexuiz on an Ironlake
machine. No regression was found there
Note that the optimizations are *deactivated* on Gen4 and Gen6 since I
did test them properly yet. No reason there are bugs but who knows
The optimizations are currently done in branch free programs *only*.
Considering branches is more complicated and there are actually two
paths: one for branch free programs and one for programs with branches
Also some other optimizations should be done during the emission
itself but considering that some code is shader between vertex shaders
(AOS) and pixel shaders (SOA) and that we may have branches or not, it
is pretty hard to both factorize the code and have one good set of
strategies
|
|
|
|
Depending on __DRI_COPY_SUB_BUFFER doesn't work when we no longer include
dri_interface.h.
https://bugs.freedesktop.org/show_bug.cgi?id=29264
|
|
Acked-by: Jakob Bornecrantz <jakob@vmware.com>
|
|
s/PIPE_OS_DARWIN/PIPE_OS_APPLE, since there is no PIPE_OS_DARWIN.
Acked-by: Vinson Lee <vlee@vmware.com>
|
|
Acked-by: Jakob Bornecrantz <jakob@vmware.com>
|
|
|
|
Acked-by: Jakob Bornecrantz <jakob@vmware.com>
|
|
Same problem as fixed for drisw in 4d58b5b482d06ab8d4c4b2db33d0b48b7c82d064.
|
|
Clarifies program assembly, and with a little tweak to always use
constant_map, we could cut down on constant buffer payload.
|
|
|
|
By fixing one, I introduced another. Crap.
|
|
|
|
isn't a problem yet, but have issues in hiz branch.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Because the hw can't sample it, I reinterpret the format as G16R16 and
sample the G component. This gives 16 bits of precision, which should be
enough for depth texturing (surprisingly, the sampled values are exactly
the same as in D16 textures).
This also enables EXT_packed_depth_stencil on those old chipsets, finally.
|
|
The number of macrotiles in the Y direction must be even, otherwise memory
corruption may happen (e.g. broken fonts). Basically, if we get a buffer
in resource_from_handle, we can determine from the buffer size whether it's
safe to use the CBZB clear or not.
|
|
|
|
We were using TXPITCH_EN for textures from the DDX since ever, for nothing.
|
|
This decouples initializing a texture layout/miptree description
from an actual texture creation, it also partially unifies texture_create
and texture_from_handle.
r300_texture inherits r300_texture_desc, which inherits u_resource.
The CBZB clear criteria are moved to r300_texture_desc::cbzb_allowed[level].
And other minor cleanups.
|
|
The driver gets a buffer and its size in resource_from_handle.
It computes the required minimum buffer size from given texture
properties, and compares the two sizes.
This is to early detect DDX bugs.
|
|
|
|
I don't remember why the alignment was there, but it seems to be
no longer needed. I guess it was a dirty fix for some other bug.
|
|
|
|
Causing a crash in drisw MakeCurrent.
|
|
|
|
gc->driContext points at the second member of the dri2 context. The
dri2 context is just a subclass of the GLX context.
Fixes piglit tfp testcase.
|
|
We use XID 0 to indicate the context has already been destroyed, but it's
currently bound.
|
|
|
|
|
|
This lets us better separate context creation between the different
backends.
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=29225
|
|
|
|
|
|
This add texture support to the assembler, generated code is
wrong (tested against working dump).
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
|
|
|
|
|
|
On Cygwin locale_t in not available but 'llvm-config --cppflags' adds
the compiler flag -D_GNU_SOURCE to the build.
|
|
The es1, es2 and gl state trackers include draw_pipe.h, which includes
the llvm headers if MESA_LLVM is true, so we also need to add the
llvm seachpaths.
Similarly, gallivm and other gallium drivers need LLVM_CFLAGS to build when enabled.
Also fix xorg drivers, they didn't include LDFLAGS.
|
|
We need to make sure dp are all mirror accross the alu unit.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Could serve as an example on how to add more token
support.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Writing a compiler is time consuming and error prone in
order to allow r600g to further progress in the meantime
i wrote a simple tgsi assembler, it does stupid thing but
i would rather keep the code simple than having people
trying to optimize code it does.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Fixes glean glsl1 since 7b7845a076c933e096ac511b4184141ba194449a
|
|
|
|
If we bias x,y we still need to pass through z,w in case the shader
reads gl_FragCoord.z or .w.
Fixes fd.o bug 29183 (piglit glsl-bug-22603).
NOTE: This is a candidate for the 7.8 branch.
|
|
This should be more useful for developers and for bug triaging than
just generating wrong code.
|
|
Fixes glsl-vs-arrays. Bug #27388.
|
|
Fixes minor rasterization error detected by some tests.
|
|
|
|
|