| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
I need to access the pointer in st/mesa when I only have pipe_resource.
|
|
|
|
|
|
|
|
|
| |
Most things that work on Fermi should work on Kepler too.
There are a few performance optimizations left to do, like better
placement of texture barriers and adding scheduling data to the
shader instructions (without them, a thread group will be masked
for 32 cycles after each single instruction issue).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The primary motivation for this rewrite was to have a maintainable driver
going forward, as nvfx was quite horrible in a lot of ways.
The driver is heavily based on the design of the nv50/nvc0 3d drivers we
already have, and uses the same common buffer/fence code. It also passes
a HEAP more piglit tests than nvfx did, supports a couple more features,
and a few more to come still probably.
The CPU footprint of this driver is far far less than nvfx, and translates
into far greater framerates in a lot of applications (unless you're using
a CPU that's way way newer than the GPUs of these generations....)
Basically, we once again have a maintained driver for these chipsets \o/
Feel free to report bugs now!
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This driver hasn't been maintained properly for a very long time, and for
many very good reasons. It's horrible.
A new driver supporting these chipsets will appear with the commits that
port vieux/nv50/nvc0 to libdrm_nouveau-2.0.
Signed-off-by: Ben Skeggs <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
This reverts commit 0950086376b1c8b7fb89eda81ed7f2f06dee58bc.
It was decided to refactor the transfer API instead of adding workarounds
to address the performance issues.
|
|
|
|
| |
Deprecated and unused.
|
|
|
|
| |
Signed-off-by: Christian König <[email protected]>
|
|
|
|
|
|
|
| |
Let the driver control interlaced or progressive
format of video buffers.
Signed-off-by: Christian König <[email protected]>
|
|
|
|
|
|
|
| |
Create the video buffers in the format the driver preffers.
This temporary creates problems with decoder less VDPAU video playback.
Signed-off-by: Christian König <[email protected]>
|
|
|
|
|
|
|
| |
Again based on Maartens work, but keep begin_frame
and end_frame functions for now.
Signed-off-by: Christian König <[email protected]>
|
|
|
|
|
|
|
| |
Just like in the rest of gallium, this reduces the
number of parameters significantly.
Signed-off-by: Christian König <[email protected]>
|
|
|
|
|
|
|
| |
Based on patches from Maarten Lankhorst <[email protected]>
Signed-off-by: Christian König <[email protected]>
Acked-by: Maarten Lankhorst <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
Please see the diff for further info.
This paves the way for moving user buffer uploads out of drivers and should
allow to clean up the mess in u_upload_mgr in the meantime.
For now only allowed for buffers on r300 and r600.
Acked-by: Christian König <[email protected]>
|
|
|
|
| |
PIPE_TRANSFER_DISCARD_RANGE is defined the same.
|
|
|
|
|
|
|
| |
Double free and array overflow, even if only 2 members are
used the last one needs to be set to NULL explicitly.
Signed-off-by: Maarten Lankhorst <[email protected]
|
| |
|
|
|
|
| |
Its only purpose was to destroy itself.
|
| |
|
|
|
|
|
| |
They spam console, but are not very useful - hide them behind
NOUVEAU_MESA_DEBUG environment variable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If there is not enough space in pushbuffer for fence emission
(nouveau_fence_emit -> nv50_screen_fence_emit -> MARK_RING),
the pushbuffer is flushed, which through flush_notify ->
nv50_default_flush_notify -> nouveau_fence_update marks currently
emitting fence as flushed. But actual emission is done after this mark.
So later when there is a need to wait on this fence and pushbuffer
was not flushed in between, fence wait will never finish causing
application to hang.
To fix this, introduce new fence state between AVAILABLE and EMITTED,
set it before emission and handle it everywhere.
Additionally obtain fence sequence numbers after possible flush in
MARK_RING, because we want to emit fences in correct order.
Reviewed-by: Christoph Bumiller <[email protected]>
Note: This is a candidate for the 7.11 branch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fence emission can flush the push buffer, which through flush_notify
unreferences recently emitted fence. If ref count is increased after
fence emission, unreference deletes the fence, which causes SIGSEGV.
Backtrace:
nouveau_fence_del
nouveau_fence_ref
nouveau_fence_next
nouveau_pushbuf_flush
MARK_RING
nv50_screen_fence_emit
nouveau_fence_emit
nv50_flush
This bug manifested as an assertion failure in nouveau_fence.c, because
SIGSEGV handler tried to shutdown the application and used messed up
fence.
This issue was reported by Maxim Levitsky.
Note: This is a candidate for the 7.11 branch.
|
|
|
|
| |
Reviewed-by: Chia-I Wu <[email protected]>
|
| |
|
|
|
|
| |
Signed-off-by: Emeric Grange <[email protected]>
|
|
|
|
|
|
| |
Try to use the PMPEG where available
Signed-off-by: Maarten Lankhorst <[email protected]>
|
|
|
|
| |
Note: This is a candidate for the 7.11 branch.
|
| |
|
|
|
|
|
| |
Should get rid of "destroying GPU memory cache with some buffers
still in use" message.
|
| |
|
| |
|
|
|
|
| |
Compile tested only.
|
|
|
|
|
| |
For each driver, factor out C_SOURCES from Makefile to Makefile.sources,
and let Makefile and SConscript share it.
|
|
|
|
|
|
|
|
| |
Implement PIPE_CAP_NUM_BUFFERS_DESIRED giving the decoder control over
the number of buffers a state tracker should allocate.
Signed-off-by: Christian König <[email protected]>
Reviewed-by: Younes Manton <[email protected]>
|
|
|
|
|
| |
This doesn't include nvfx since its context struct is not derived
from common nouveau_context (yet).
|
| |
|
| |
|
|
|
|
|
|
| |
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=35025
Signed-off-by: Brian Paul <[email protected]>
|
| |
|
|
|
|
| |
So that they don't have the driver-specific param and return type.
|
|
|
|
| |
Only st/xorg used it and even incorrectly with regards to pipelined transfers.
|
|
|
|
|
| |
This is a follow-up to the ARB_sync patch for st/mesa and completes
the ARB_sync implementation.
|
|
|
|
|
|
|
| |
PIPE_BIND_CONSTANT_BUFFER alone was OK for nv50/nvc0, but nv30 will need
to be able to set others on certain chipsets.
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
|
|
| |
This introduces a shared nouveau_context struct to track such things.
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
|
|
| |
Port of the nvc0 commit doing the same.
Signed-off-by: Ben Skeggs <[email protected]>
|