| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This is a follow-up to commit d737857ed2ff4313fd6046dcd80018c6308a53c5.
|
|
|
|
| |
Passes fbo-generatemipmap-formats.
|
|
|
|
|
|
| |
move the one function into state common
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
| |
Doesn't cause any piglit regression and passes the fbo-draw-buffers-blend
test.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
| |
the provoking vertex doesn't apply to quad/strip/polygon.
This fixes clipFlat on r600g.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
the hw does neg after abs, so don't neg the source in the ABS instruction case.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the initial code if we had nothing in the vector slots r would
never get reset to 0, so we'd fail to compile shaders, after the previous
commit this would happen for the LIT tests. When I fixed that we did a lot
of unnecessary loops through all the vector states when we had no vector
slots filled. So this patch optimises thing for the scalar only state.
This fixes the 3 LIT piglit tests on r600g.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
In the R600 ISA document:
Section 4.7.5 Cycle restrictions for the ALU.trans states that
PV/PS have cycle restrictions wrt constants.
This is part of a fix for the LIT tests
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
Just to keep drivers working.
Reviewed-by: Jakob Bornecrantz <[email protected]>
|
|
|
|
|
|
|
| |
Keep track of when the caches are dirty, and only flush them when
the framebuffer state is set and when the context is flushed.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
Based on Cédric's r6xx/r7xx patch.
Signed-off-by: Alex Deucher <[email protected]>
|
|
|
|
|
| |
Signed-off-by: Cedric Cano <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
|
|
|
|
|
|
| |
Check for signed type and enable SNORM.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
Fill in the swaps for the formats to fix warnings.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
This gets me from 2200 to 1978 dwords for a gears frame.
This is due to us having some 32-dwords blocks in the SPI, that we only
modify the first dwords off.
v2: fix dirty reg count from Bas Nieuwenhuizen
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a first step to decreasing the CPU usage, by decreasing how much
stuff we pass to the GPU and hence to the kernel CS checker.
This adds a check to see if the values we need to write are actually dirty,
and avoids writing if they are. However certain register need to always
be written so we add a new flag to say which ones should be always written
if used. (Note this could probably be done cleaner with a larger refactoring,
since I think the CONST_BUFFER_SIZE_PS/VS and CONST_CACHE_PS/VS might
be better off as a special state).
It also moves the need_bo to be a flags on the register now.
With this, a frame of gears goes from emitting 3k dwords to emitting 2k dwords,
and I'm sure it could get a lot smaller.
v2: fix some evergreen dirty bits.
Original patch from: Bas Nieuwenhuizen, I NIHed nearly the same thing
before seeing his patch on the list, oops.
Reviewed-by: Bas Nieuwenhuizen
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
| |
The very presence of this extension breaks things.
This should bring us closer to being able to run Unigine Heaven.
The extension will be re-enabled once gl_InstanceID is implemented.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without it gcc complains:
nv50_screen.c: In function ‘nv50_screen_is_format_supported’:
nv50_screen.c:48: warning: implicit declaration of function ‘util_format_is_supported’
and handles it wrongly - util_format_is_supported returns boolean, which is typedef'ed
to uchar, but function without prototype is assumed to return int.
For me nv50_screen_is_format_supported was returning true for float formats without
--enable-texture-float...
|
|
|
|
| |
v2: Unsigned floats are allowed regardless of the configure switch.
|
| |
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
| |
This fixes piglit fbo/fbo-drawbuffers-blend-add.
Signed-off-by: Henri Verbeet <[email protected]>
|
| |
|
| |
|
|
|
|
|
|
| |
v2: Allocate the fences from a single shared buffer object.
v3: Allocate the r600_fence structs in blocks of 16.
Spin a few times before calling sched_yield in r600_fence_finish().
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
| |
merge instruction groups
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
| |
Evergreen.
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
|
|
|
| |
It doesn't support them. Also, we shouldn't be
emitting CB_BLENDx_CONTROL on R600 as the regs don't
exist there, but I'm not sure of the best way to deal
with this in the current r600 winsys.
Signed-off-by: Alex Deucher <[email protected]>
|
|
|
|
|
|
| |
Only rv6xx+ support them.
Signed-off-by: Alex Deucher <[email protected]>
|
|
|
|
|
|
|
| |
This sort of worked because blend state setup cleared MULTIWRITE_ENABLE again,
but that's not something we want to depend on.
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
|
| |
Disable Z_EXPORT / STENCIL_EXPORT / KILL_ENABLE again if a shader doesn't
use those. This is similar to 0a6f09a76a416b8672e149c520aa5bef33174223.
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
|
|
| |
The idea behind this is that anything touching registers should be in
r600_state.c or evergreen_state.c. This is also consistent with
evergreen_pipe_shader_vs().
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
| |
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Avoid setting the same gpu register several times in a r600_pipe_state.
Compute the final value of the register and set that one time. This avoids
some overhead in r600_context_pipe_state_set().
Signed-off-by: Mathias Fröhlich <[email protected]>
Signed-off-by: Henri Verbeet <[email protected]>
|
|
|
|
|
|
| |
077c448d184799e0d9ec962013ec784c6a5c1807 missed this.
Signed-off-by: Henri Verbeet <[email protected]>
|
| |
|
| |
|
|
|
|
| |
r600_dri.so.tmp: undefined reference to `_mesa_rgba_logicop_enabled'
|
|
|
|
|
|
|
|
|
|
| |
The drivers have been changed so that they behave as if all of the flags
were set. This is already implicit in most hardware drivers and required
for multiple contexts.
Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag
to decide whether flush_frontbuffer should be called.
New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement.
|
| |
|
|
|
|
| |
Only st/xorg used it and even incorrectly with regards to pipelined transfers.
|
| |
|
|
|
|
| |
Reviewed-by: Henri Verbeet <[email protected]>
|