| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Fixes the bug that prevented propagation of literals in some cases.
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
| |
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
| |
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
post_scheduler clears interference set for reallocatable values when
the value becomes live first time, and then updates it to take into
account modified order of operations, but this was not handled properly
if the value appears first time as a source in copy operation.
Fixes issues with webgl demo: http://madebyevan.com/webgl-water/
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Some inputs may be preloaded into predefined GPRs,
so we can't reallocate arrays with such inputs.
Fixes issues with webgl demo: http://oos.moxiecode.com/js_webgl/snake/
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
| |
This should fix build issues with GCC < 4.3
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New disassembler is not completely isolated yet from further processing
in r600g/sb that is not required for printing the dump, so it has higher
probability to fail in case of any unexpected features in the bytecode.
This patch adds "sbdisasm" flag for R600_DEBUG that allows to use new
disassembler in r600g/sb for shader dumps when shader optimization
is not enabled.
If shader optimization is enabled, new disassembler is used by default.
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
| |
Kills tilling on UVD buffers, but we currently don't really need that.
Signed-off-by: Christian König <[email protected]>
|
|
|
|
|
|
|
|
| |
We still need the option for handling 3D textures as well.
Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=64143
Signed-off-by: Christian König <[email protected]>
|
|
|
|
| |
Signed-off-by: Christian König <[email protected]>
|
|
|
|
|
|
| |
Still not perfect, but a step in the right direction.
Signed-off-by: Christian König <[email protected]>
|
|
|
|
| |
We do not need our own prim_count() anymore.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
R600_CONTEXT_FLUSH_AND_INV
We are already emitting a EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT packet
when this flush flag is set, so flushing the dest caches with a
SURFACE_SYNC should not be necessary.
The motivation for this change is that emitting a SURFACE_SYNC packet with
the CB bits set was causing compute shaders to hang on Cayman.
Reviewed-by: Alex Deucher <[email protected]>
|
|
|
|
| |
Reviewed-by: Alex Deucher <[email protected]>
|
|
|
|
| |
Reviewed-by: Tom Stellard <[email protected]>
|
|
|
|
|
|
| |
Just like radeon/uvd, r600/sb fails to find the libdrm includes.
Signed-off-by: Lauri Kasanen <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
Without this patch, radeon_uvd failed to find the libdrm includes:
In file included from radeon_uvd.c:48:
../../winsys/radeon/drm/radeon_winsys.h:44:35: error:
libdrm/radeon_surface.h: No such file or directory
Signed-off-by: Lauri Kasanen <[email protected]>
|
|
|
|
| |
Signed-off-by: Christian König <[email protected]>
|
|
|
|
| |
Signed-off-by: Christian König <[email protected]>
|
|
|
|
| |
On GEN7+, is->dev.has_gen7_sol_reset is required.
|
| |
|
|
|
|
|
| |
When the SO targets are changed and no appending is requested, we need to send
SOL_RESET on GEN7+.
|
|
|
|
| |
With the commands supported by GPE, we can finally program the states.
|
|
|
|
| |
They were just stubs before.
|
|
|
|
|
| |
Move max_svbi calculation to a helper function and make it available for other
GENs.
|
|
|
|
|
| |
pipe_stream_output_info tells us which of OUT[i] needs to be written out.
We need the info to map OUT[i] to VUE offset.
|
|
|
|
| |
It will be used for SOL_RESET on GEN7.
|
|
|
|
| |
We do not allocate such resources yet though.
|
|
|
|
|
| |
As we do not advertise MSAA support, this change should not make any
difference yet.
|
|
|
|
|
| |
There is no reason to waste the memory when the HW can support compact array
spacing (ARYSPC_LOD0).
|
|
|
|
| |
It seems a bit weird to have device limits in a context.
|
|
|
|
|
| |
We need only dev->gen, but it makes sense to expose other information to the
compiler.
|
|
|
|
|
| |
We need only dev->gen and dev->gt, but it makes sense to expose other
information to the pipeline.
|
|
|
|
|
| |
The struct is used to describe the device information, such as PCI ID, GEN,
GT, and etc.
|
| |
|
|
|
|
| |
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Collects various statistical information for each shader
and total stats for contexts.
Printed with R600_DEBUG=sb,sbstat
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases we use value::gvn_source field to link values that
are known to be equal before gvn pass (e.g. results of DOT4 in different
slots of the same alu group), but then source value may become dead later
and this confuses further passes.
This patch resets value::gvn_source to NULL in the dce_cleanup pass
if it points to dead value.
Fixes segfault during shader optimization with ETQW.
Signed-off-by: Vadim Girlin <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's not a complete register pressure tracking, yet it helps to prevent
register allocation problems in some cases where they were observed.
The problems are uncovered by false dependencies between fetch instructions
introduced by some recent changes in TGSI and/or default backend.
Sometimes we have code like this:
...
SAMPLE R5.xyzw, R5.xyzw
... store R5.xyzw somewhere
MOV R5.x, <next x coord>
MOV R5.y, <next y coord>
SAMPLE R5.xyzw, R5.xyzw
... <may be repeated a lot of times>
With 2D resources, z and w in SAMPLE src reg aren't used and can be simply
masked, but shader backend doesn't have this information, so it's
considered as data dependency by optimization algorithms.
|
| |
|
| |
|
|
|
|
|
|
| |
Optimization is enabled with "R600_DEBUG=sb".
Signed-off-by: Vadim Girlin <[email protected]>
|
| |
|
|
|
|
| |
This prevents the problems when the header is included in C++ code.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This results in more clean shader code and may improve the quality of
optimized code produced by r600-sb due to eliminated false dependencies
in some cases.
Signed-off-by: Vadim Girlin <[email protected]>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
That is, when llvmpipe is run in single-threaded mode.
Trivial.
Tested with
LP_NUM_THREADS=0 glean --run results --overwrite --quick --tests occluQry
|