| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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]>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
|
|
|
| |
nv50_resource is being called nv04_resource now temporarily, to avoid
a naming conflict with nouveau_resource from libdrm.
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
|
|
|
| |
Modified from original to remove chipset-specific code, and to be decoupled
from the mm present in said drivers.
Signed-off-by: Ben Skeggs <[email protected]>
|
|
|
|
|
|
| |
For doing builds against a separated libdrm these cflags are needed.
Signed-off-by: Dave Airlie <[email protected]>
|
|\
| |
| |
| |
| | |
Conflicts:
src/gallium/drivers/nouveau/nouveau_winsys.h
|
| |
| |
| |
| | |
Signed-off-by: Ben Skeggs <[email protected]>
|
|/ |
|
|
|
|
|
| |
Useful to amortize the command submission/reloc overhead (e.g. etracer
goes from 72 to 109 FPS on nv4b).
|
| |
|
|
|
|
|
|
|
| |
nv50 should switch to rules-ng-ng too at some point.
The classic Mesa Nouveau driver also includes a copy of nouveau_class.h,
and should convert to rules-ng-ng too and remove it.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is the new register generation toolkit in use by nouveau.
As far as I know, this is the best register description toolkit in
existence, and you should use it too for your hardware :)
Thanks to Marcin Kościelnicki for inventing it and performing
invaluable reverse engineering work of nVidia chips.
|
|
|
|
|
| |
Thanks for Dave Airlie and Jerome Glisse for their code which made
me realize I need this too.
|
| |
|