Displaying 20 results from an estimated 44 matches for "nouveau_bo_gart".
2014 Oct 29
3
[PATCH 3/3] gk20a: use NOUVEAU_BO_GART as VRAM domain
On Mon, Oct 27, 2014 at 6:34 AM, Alexandre Courbot <acourbot at nvidia.com> wrote:
> GK20A does not have dedicated VRAM, therefore allocating in VRAM can be
> sub-optimal and sometimes even harmful. Set its VRAM domain to
> NOUVEAU_BO_GART so all objects are allocated in system memory.
>
> Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
> ---
> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_...
2014 Oct 27
0
[PATCH 3/3] gk20a: use NOUVEAU_BO_GART as VRAM domain
GK20A does not have dedicated VRAM, therefore allocating in VRAM can be
sub-optimal and sometimes even harmful. Set its VRAM domain to
NOUVEAU_BO_GART so all objects are allocated in system memory.
Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
---
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/no...
2014 Nov 05
0
[PATCH 3/3] gk20a: use NOUVEAU_BO_GART as VRAM domain
On 10/30/2014 12:29 AM, Ilia Mirkin wrote:
> On Mon, Oct 27, 2014 at 6:34 AM, Alexandre Courbot <acourbot at nvidia.com> wrote:
>> GK20A does not have dedicated VRAM, therefore allocating in VRAM can be
>> sub-optimal and sometimes even harmful. Set its VRAM domain to
>> NOUVEAU_BO_GART so all objects are allocated in system memory.
>>
>> Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
>> ---
>> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/src/gall...
2015 Mar 14
1
[PATCH ddx] Add support for VRAM-less devices to the ddx
..._download_from_screen(PixmapPtr pspix, int x, int y, int w, int h,
goto memcpy;
if (!NVAccelM2MF(pNv, w, lines, cpp, 0, tmp_offset,
- nouveau_pixmap_bo(pspix), NOUVEAU_BO_VRAM,
+ nouveau_pixmap_bo(pspix), NOUVEAU_BO_APER,
src_pitch, pspix->drawable.height, x, y,
tmp, NOUVEAU_BO_GART, tmp_pitch,
lines, 0, 0))
@@ -361,7 +361,7 @@ nouveau_exa_upload_to_screen(PixmapPtr pdpix, int x, int y, int w, int h,
if (!NVAccelM2MF(pNv, w, lines, cpp, tmp_offset, 0, tmp,
NOUVEAU_BO_GART, tmp_pitch, lines, 0, 0,
- nouveau_pixmap_bo(pdpix), NOUVEAU_BO_VRAM,
+ nouveau_p...
2009 Dec 30
0
Add NOUVEAU_VTXIDX_IN_VRAM variable to put vertex/index buffers in VRAM
...it doesn't make things worse, please describe your hardware configuration and software versions to nouveau at lists.freedesktop.org\n");
+ }
+
+ if (screen->base.get_param(&screen->base, NOUVEAU_CAP_HW_VTXBUF))
+ screen->vertex_buffer_flags |= vram_hack ? NOUVEAU_BO_VRAM : NOUVEAU_BO_GART;
+
+ if (screen->base.get_param(&screen->base, NOUVEAU_CAP_HW_IDXBUF))
+ screen->index_buffer_flags |= vram_hack ? NOUVEAU_BO_VRAM : NOUVEAU_BO_GART;
+ }
+}
+
static struct pipe_buffer *
nouveau_screen_bo_new(struct pipe_screen *pscreen, unsigned alignment,
unsigned usage...
2010 Mar 01
2
[PATCH] nouveau: make sure initial kalloc for user bo ends up in the right place
...loc.c
+++ b/nouveau/nouveau_reloc.c
@@ -73,6 +73,12 @@ nouveau_reloc_emit(struct nouveau_channel *chan, struct nouveau_bo *reloc_bo,
return -EINVAL;
}
+ /* We're about to reloc a user buffer, better make sure we don't cause
+ * a double migration.
+ */
+ if (!(nvbo->flags & (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM)))
+ nvbo->flags |= (flags & (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM));
+
rpbbo = nouveau_bo_emit_buffer(chan, reloc_bo);
if (!rpbbo)
return -ENOMEM;
--
1.7.0
2014 Oct 27
4
[PATCH 0/3] nouveau: support for custom VRAM domains
...mory.
In that respect it seems to be the right thing to do, and all things taken
is not very intrusive.
Tested on GK20A with Wayland and several EGL clients running, and working
fine.
Alexandre Courbot (3):
nouveau: support for custom VRAM domains
nvc0: use NV_VRAM_DOMAIN() macro
gk20a: use NOUVEAU_BO_GART as VRAM domain
src/gallium/drivers/nouveau/nouveau_buffer.c | 6 ++----
src/gallium/drivers/nouveau/nouveau_screen.c | 6 ++++++
src/gallium/drivers/nouveau/nouveau_screen.h | 4 ++++
src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 4 ++--
src/gallium/drivers/nouveau/nv...
2014 Nov 19
5
[PATCH v2 0/3] nouveau: support for custom VRAM domains
...h Wayland and several EGL clients running, and working
fine.
Changes since v1:
- When using GART as the VRAM domain, move all vidmem bindings to sysmem and
set vidmem_bindings to 0.
Alexandre Courbot (3):
nouveau: support for custom VRAM domains
nvc0: use NV_VRAM_DOMAIN() macro
gk20a: use NOUVEAU_BO_GART as VRAM domain
src/gallium/drivers/nouveau/nouveau_buffer.c | 6 ++---
src/gallium/drivers/nouveau/nouveau_screen.c | 6 +++++
src/gallium/drivers/nouveau/nouveau_screen.h | 4 ++++
src/gallium/drivers/nouveau/nv50/nv50_miptree.c | 4 ++--
src/gallium/drivers/nouveau/nvc0...
2014 Nov 19
1
[PATCH v2 2/3] nvc0: use NV_VRAM_DOMAIN() macro
...if (buffer->base.bind & screen->vidmem_bindings)
> - buffer->domain = NOUVEAU_BO_VRAM;
> + buffer->domain = NV_VRAM_DOMAIN(screen);
> else
> if (buffer->base.bind & screen->sysmem_bindings)
> buffer->domain = NOUVEAU_BO_GART;
Both of these changes should be unnecessary if vidmem_bindings is
cleared out, right?
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> index 1aacaec89acf..ddff508c475c 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_...
2015 Jun 19
5
[PATCH v3 0/2] nouveau: support for custom VRAM domains
New revision of this patchset that prevents VRAM objects from being
allocated on VRAM-less systems like Tegra. This is required for Mesa
to work on such systems.
Changes since v2:
- Use vram_size to detect systems without VRAM and set the correct
domain instead of expecting each chip to set its domain explicitly.
Alexandre Courbot (2):
nouveau: support for custom VRAM domains
nvc0: use
2013 Jan 20
1
[PATCH] nouveau: put cursor BO in GART
...drmmode_display.c
@@ -567,7 +567,7 @@ drmmode_crtc_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int num)
drmmode->mode_res->crtcs[num]);
drmmode_crtc->drmmode = drmmode;
- ret = nouveau_bo_new(pNv->dev, NOUVEAU_BO_VRAM | NOUVEAU_BO_MAP, 0,
+ ret = nouveau_bo_new(pNv->dev, NOUVEAU_BO_GART | NOUVEAU_BO_MAP, 0,
64*64*4, NULL, &drmmode_crtc->cursor);
assert(ret == 0);
--
2009 Dec 05
1
[PATCH] nouveau: avoid running out of relocs (attempt 4)
...cur_reloc; i++) {
struct nouveau_stateobj_reloc *r = &so->reloc[i];
- nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->packet, 0,
+ if ((ret = nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->packet, 0,
(r->flags & (NOUVEAU_BO_VRAM |
NOUVEAU_BO_GART |
NOUVEAU_BO_RDWR)) |
- NOUVEAU_BO_DUMMY, 0, 0);
- nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->data, 0,
+ NOUVEAU_BO_DUMMY, 0, 0))) {
+ debug_printf("so_emit_reloc_markers failed reloc \
+ with error %d\n", ret);
+ }
+ if ((ret = nouveau_...
2012 Jul 06
0
[PATCH] dri/nouveau: Add AllocTextureImageBuffer() implementation
...l_texture_image *ti)
+{
+ if (ti->TexFormat == MESA_FORMAT_A8 ||
+ ti->TexFormat == MESA_FORMAT_L8 ||
+ ti->TexFormat == MESA_FORMAT_I8)
+ /* 1 cpp formats will have to be swizzled by the CPU,
+ * so leave them in system RAM for now. */
+ return NOUVEAU_BO_MAP;
+ else
+ return NOUVEAU_BO_GART | NOUVEAU_BO_MAP;
+}
+
+static GLboolean
+nouveau_alloc_texture_image_buffer(struct gl_context *ctx,
+ struct gl_texture_image *ti,
+ gl_format format, GLsizei width,
+ GLsizei height, GLsizei depth)
+{
+ struct nouveau_teximage *nti = to_nouveau_teximage(ti);
+ struct nouveau_surface *...
2009 Dec 30
4
[PATCH 1/3] nv50: remove vtxbuf stateobject after a referenced vtxbuf is mapped
- This avoids problematic "reloc'ed while mapped" messages and
some associated corruption as well.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
src/gallium/drivers/nouveau/nouveau_screen.c | 21 +++++++++++++++++++++
src/gallium/drivers/nouveau/nouveau_screen.h | 3 +++
src/gallium/drivers/nouveau/nouveau_stateobj.h | 13 +++++++++++++
2014 Nov 19
0
[PATCH v2 2/3] nvc0: use NV_VRAM_DOMAIN() macro
...n,
}
} else {
if (buffer->base.bind & screen->vidmem_bindings)
- buffer->domain = NOUVEAU_BO_VRAM;
+ buffer->domain = NV_VRAM_DOMAIN(screen);
else
if (buffer->base.bind & screen->sysmem_bindings)
buffer->domain = NOUVEAU_BO_GART;
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
index 1aacaec89acf..ddff508c475c 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
@@ -359,7 +359,7 @@ nv50_miptree_create...
2014 Nov 19
1
[PATCH v2 2/3] nvc0: use NV_VRAM_DOMAIN() macro
...if (buffer->base.bind & screen->vidmem_bindings)
> - buffer->domain = NOUVEAU_BO_VRAM;
> + buffer->domain = NV_VRAM_DOMAIN(screen);
> else
> if (buffer->base.bind & screen->sysmem_bindings)
> buffer->domain = NOUVEAU_BO_GART;
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> index 1aacaec89acf..ddff508c475c 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_miptree.c
> @@ -359,7 +359...
2009 Dec 05
0
[PATCH] nouveau: avoid running out of relocs (attempt 3)
...{
struct nouveau_stateobj_reloc *r = &so->reloc[i];
+ int ret = 0;
- nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->packet, 0,
+ if ((ret = nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->packet, 0,
(r->flags & (NOUVEAU_BO_VRAM |
NOUVEAU_BO_GART |
NOUVEAU_BO_RDWR)) |
- NOUVEAU_BO_DUMMY, 0, 0);
- nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->data, 0,
+ NOUVEAU_BO_DUMMY, 0, 0))) {
+ debug_printf("so_emit_reloc_markers failed reloc \
+ with error %d\n", ret);
+ }
+ if ((ret = nouveau_...
2009 Dec 13
3
[PATCH] nouveau: avoid running out of relocs (attempt 5)
...cur_reloc; i++) {
struct nouveau_stateobj_reloc *r = &so->reloc[i];
- nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->packet, 0,
+ if ((ret = nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->packet, 0,
(r->flags & (NOUVEAU_BO_VRAM |
NOUVEAU_BO_GART |
NOUVEAU_BO_RDWR)) |
- NOUVEAU_BO_DUMMY, 0, 0);
- nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo, r->data, 0,
+ NOUVEAU_BO_DUMMY, 0, 0))) {
+ debug_printf("so_emit_reloc_markers failed reloc \
+ with error %d\n", ret);
+ pb->remaining += i;...
2013 Nov 09
5
[Bug 71438] New: Application Konqueror crashes when connecting to asus.com
https://bugs.freedesktop.org/show_bug.cgi?id=71438
Priority: medium
Bug ID: 71438
Assignee: nouveau at lists.freedesktop.org
Summary: Application Konqueror crashes when connecting to
asus.com
QA Contact: xorg-team at lists.x.org
Severity: normal
Classification: Unclassified
OS: Linux (All)
2013 Jun 30
0
[PATCH v2] nv50: H.264/MPEG2 decoding support via VP2, available on NV84-NV96, NVA0
...ase.base.get_video_param = nv84_screen_get_video_param;
+ screen->base.base.is_video_format_supported = nv84_screen_video_supported;
+ } else {
+ /* Unsupported, but need to init pointers. */
+ nouveau_screen_init_vdec(&screen->base);
+ }
ret = nouveau_bo_new(dev, NOUVEAU_BO_GART | NOUVEAU_BO_MAP, 0, 4096,
NULL, &screen->fence.bo);
diff --git a/src/gallium/drivers/nv50/nv50_winsys.h b/src/gallium/drivers/nv50/nv50_winsys.h
index 145ee70..e04247b 100644
--- a/src/gallium/drivers/nv50/nv50_winsys.h
+++ b/src/gallium/drivers/nv50/nv50_winsys.h
@...