Age | Commit message (Collapse) | Author |
|
|
|
this sets the stencil up for evergreen properly.
|
|
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=30632
NOTE: this is a candidate for the 7.9 branch.
|
|
Since flush rework there could be only one relocation per
register in a block.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Got a speed up by tracking the dirty blocks in a seperate list instead of looping through all blocks. This version should work with block that get their dirty state disabled again and I added a dirty check during the flush as some blocks were already dirty.
|
|
|
|
Flush read cache before writting register. Track flushing inside
of a same cs and avoid reflushing same bo if not necessary. Allmost
properly force flush if bo rendered too and then use as a texture
in same cs (missing pipeline flush dunno if it's needed or not).
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Allow fast lookup of relocation information & id which
was a CPU time consumming operation.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
we weren't decreasing when removing from the list.
|
|
if we know the bo has gone not busy, no need to add another bo wait
thanks to Andre (taiu) on irc for pointing this out.
|
|
since we plan on using dx10 constant buffers everywhere.
|
|
we don't use this since constant buffers are now being used on all gpus.
|
|
When we go to do a lot of bos in one draw like constant bufs we need
to avoid bouncing off the busy ioctl, this mitigates by backing off
on busy bos for a short amount of times.
|
|
If we assume busy buffers are added to the list in order its unlikely
we'd fine one after the first busy one that isn't busy.
|
|
this just keeps a list of bos submitted together, and uses them to decide
bo busy state for the whole group.
|
|
NOTE: this is a candidate for the 7.9 branch.
|
|
These texture formats (like R16G16B16A16_UNORM) were untested until now
because st/mesa doesn't use them. I am testing this with a hacked st/mesa
here.
|
|
This uses message headers for now, since we'll need it for MRT. We
can cut out the header later.
|
|
It instead sensibly appears in the src0 slot.
|
|
We could try to detect this in expression handling and do it
proactively there, but it seems like less logic to do it in one
optional pass at the end.
|
|
The glsl core should be handling most dead code issues for us, but we
generate some things in codegen that may not get used, like the 1/w
value or pixel deltas. It seems a lot easier this way than trying to
work out up front whether we're going to use those values or not.
|
|
This also means that our intervals now highlight dead code.
|
|
|
|
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Add bo offset everywhere needed if r600_bo is ever a sub bo
of a bigger bo.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
From AROS.
|
|
no wonder it was slow, the code is deliberately forcing stuff into GTT,
we used to have domain management but it seems to have disappeared.
|
|
|
|
this code was memcmp'ing two structs, but refcounting one of them afterwards,
so any subsequent memcmp was never going to work.
again this stops unnecessary uploads of vertex program,
|
|
this function was taking quite a lot of pointless CPU.
|
|
Easy enough patch, who needs a full test run. Oh, that's right. Me.
|
|
The brw_wm_surface_state.c handling of GL_DEPTH_TEXTURE_MODE doesn't
apply to shadow compares, which always return an intensity value. The
texture swizzles can do the job for us.
Fixes:
glsl1-shadow2D(): 1
glsl1-shadow2D(): 3
|
|
|
|
Blending with DST_ALPHA is undefined. SRC_ALPHA works, though.
I bet some other formats have similar limitations too.
|
|
The hw swizzles have been obtained by a brute force approach,
and only C0 and C2 are stored in UV88, the other channels are
ignored.
R16G16 is going to be a lot trickier.
|
|
passes all piglit RG tests with softpipe.
|
|
FORCE_ZERO_RTAINDEX should be in the fourth (and final) dword.
|
|
|
|
Luckily, one of them would result in failing out register allocation
when the other bugs were encountered. Applies to
glsl-fs-vec4-indexing-temp-dst-in-nested-loop-combined, which still
fails register allocation, but now legitimately.
|
|
|
|
This quickly cuts 8% of the instructions in my glsl demo.
|
|
By doing so using the register allocator now, we avoid wasting a
register to make the alignment happen.
|
|
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=30551
|
|
|
|
Fixes this GCC warning.
r600_shader.c: In function 'tgsi_split_literal_constant':
r600_shader.c:818: warning: unused variable 'index'
|
|
|