| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
NOTE: This is a candidate for the 7.10 branch.
|
| |
|
| |
|
|
|
|
|
| |
Looks like only next_power_of_two, logbase2 and bitcount use builtins
requiring gcc 3.4, so maybe everything else compiles with older gcc.
|
|
|
|
|
| |
Use __builtin_clz when available for logbase/next_power_of_two,
and replace next_power_of_two with faster implementation otherwise.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
GLOBAL_GPR regs should be 0. Need to set the
number of temp regs in SQ_GPR_RESOURCE_MGMT_1.
Signed-off-by: Alex Deucher <[email protected]>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we were errantly drawing some interior edges of clipped
polygons and quads. Also, we were introducing extra edges where
polygons intersected the view frustum clip planes.
The main problem was that we were ignoring the edgeflags encoded in
the primitive header's 'flags' field which are set during polygon/quad
->tri decomposition. We need to observe those during clipping. Since
we can't modify the existing vert's edgeflag fields, we need to store
them in a parallel array.
Edge flags also need to be handled differently for view frustum planes
vs. user-defined clip planes. In the former case we don't want to draw
new clip edges but in the later case we do. This matches NVIDIA's
behaviour and it just looks right.
Finally, note that the LLVM draw code does not properly set vertex
edge flags. It's OK on the regular software path though.
|
|
|
|
|
|
| |
need more sleep or something.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
This makes sure these are enabled even if set to 0 at startup.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
| |
So only with kernel version 2.7 can this work, thanks to Alex
for pointing that out. Also add a workaround for a hw bug.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
| |
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
Evergreen can do this as well as cayman, so we should enable it.
This fixes a gpu lockup with
glsl-vs-vec4-indexing-temp-dst-in-nested-loop-combined.shader_test
I need to add a better workaround for r600/r700.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
This caused a loop in some tests.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
We weren't emitting the SQ setup regs at all which really is
fail.
When a state is always enabled we need to add it to the dirty list
as well.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
| |
This just moves the messy stuff out of the fast path,
and leaves the fast-case in the fast path.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
| |
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Since resources don't generally vary in size, this splits
the emit path, it also takes into a/c that texture and vertex resources
have different number of relocs, and avoids emitting the extra
reloc for vertex resources.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Exit this loop early to avoid pointless iterations later.
Move the resource bos to the first two regs, it actually
doesn't matter which regs we use for this in resource land.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
| |
We were always re-emitting lots of unnecessary changes here,
avoid doing that.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
This relies on the reference member being first, so document it.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
We drop them when we reference the new objects in the next line.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
| |
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
query->num_results already has the size in dwords of the query
buffer. There no need to multiply again. We were reading past
the end of the buffer, resulting in reading garbage.
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=37028
agd5f: clarify the comment.
Signed-off-by: Alex Deucher <[email protected]>
|
|
|
|
|
|
| |
Not sure why these were included originally.
Signed-off-by: Alex Deucher <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to the hw documentation, the driver needs to:
- allocate 128 bits for each possible DB
- clear the 128 bits for each possible DB
- write 1 to bits 127 and 63 for upper DBs that don't
exist on a particular asic
Previously we were only doing these steps if the
asic had less than the max possible DBs.
Signed-off-by: Alex Deucher <[email protected]>
|
|
|
|
| |
Use the new PCI ID table, make it simpler.
|
|
|
|
| |
Wondering why r600g needs to include r300_pci_ids.h
|
|
|
|
|
|
| |
Use r300_pci_ids.h instead.
Reviewed-by: Alex Deucher <[email protected]>
|
|
|
|
| |
Reviewed-by: Alex Deucher <[email protected]>
|
|
|
|
|
|
| |
Make use of this in drm and wayland st/egl backends.
Reviewed-by: Alex Deucher <[email protected]>
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
This just reduces code size a bit for this chunk.
Signed-off-by: Dave Airlie <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
At the end of flushing we were scanning over 450 blocks
with generally about 50 enabled. This reduces the scanning
to just the list of enabled blocks.
Signed-off-by: Dave Airlie <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
There isn't much point taking the overhead of range/block lookups on resources
we aren't going to be getting resource registers at wierd offsets.
Signed-off-by: Dave Airlie <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This just splits this function up as pre-cursor to reusing
the internals of it.
Signed-off-by: Dave Airlie <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
resource setting could be a fair bit more lightweight,
this patch just separates the resource structs from the standard
reg tracking structs in the driver, later patches will improve
the winsys.
Signed-off-by: Dave Airlie <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
we don't need to loop over all the registers unless we have
some bos in the block, also avoid setting the ctx flags,
and move the optional stuff down below this chunk.
Signed-off-by: Dave Airlie <[email protected]>
|
| |
| |
| |
| |
| |
| | |
also fix a unneeded dirty check and add a dirty check speedup.
Signed-off-by: Dave Airlie <[email protected]>
|
|/
|
|
|
|
| |
With complex shaders there are often "holes" in the fs inputs, and we only
have 8 tex coorsd to map those to. To fix this, we remap fs inputs to [0..8].
This lets us to run many more GLSL programs.
|
| |
|
| |
|