search for: pipe_context

Displaying 20 results from an estimated 125 matches for "pipe_context".

2016 Jun 05
0
[RFC PATCH] nouveau: add locking
...ons(-) diff --git a/src/gallium/drivers/nouveau/nouveau_buffer.c b/src/gallium/drivers/nouveau/nouveau_buffer.c index 2db538c..2af6c5f 100644 --- a/src/gallium/drivers/nouveau/nouveau_buffer.c +++ b/src/gallium/drivers/nouveau/nouveau_buffer.c @@ -380,6 +380,7 @@ nouveau_buffer_transfer_map(struct pipe_context *pipe, struct pipe_transfer **ptransfer) { struct nouveau_context *nv = nouveau_context(pipe); + struct nouveau_screen *screen = nv->screen; struct nv04_resource *buf = nv04_resource(resource); struct nouveau_transfer *tx = MALLOC_STRUCT(nouveau_transf...
2014 Nov 27
0
[Mesa-dev] [RFC] tegra: Initial support
...> + > +#include "util/u_debug.h" > +#include "util/u_inlines.h" > + > +#include "tegra/tegra_context.h" > +#include "tegra/tegra_resource.h" > +#include "tegra/tegra_screen.h" > + > +static void > +tegra_destroy(struct pipe_context *pcontext) > +{ > + struct tegra_context *context = to_tegra_context(pcontext); > + > + context->gpu->destroy(context->gpu); > + free(context); > +} > + > +static void > +tegra_draw_vbo(struct pipe_context *pcontext, > + const st...
2014 Apr 30
1
[PATCH 1/2] nouveau: remove cb_dirty, it's never used
...iff --git a/src/gallium/drivers/nouveau/nouveau_buffer.c b/src/gallium/drivers/nouveau/nouveau_buffer.c index e308ff4..904e2cc 100644 --- a/src/gallium/drivers/nouveau/nouveau_buffer.c +++ b/src/gallium/drivers/nouveau/nouveau_buffer.c @@ -521,7 +521,7 @@ nouveau_buffer_transfer_flush_region(struct pipe_context *pipe, * was returned was not the real resource's data, this needs to transfer the * data back to the resource. * - * Also marks vbo/cb dirty if the buffer's binding + * Also marks vbo dirty based on the buffer's binding */ static void nouveau_buffer_transfer_unmap(struct pipe...
2014 Nov 27
7
[RFC] tegra: Initial support
...IN THE SOFTWARE. + */ + +#include <stdlib.h> + +#include "util/u_debug.h" +#include "util/u_inlines.h" + +#include "tegra/tegra_context.h" +#include "tegra/tegra_resource.h" +#include "tegra/tegra_screen.h" + +static void +tegra_destroy(struct pipe_context *pcontext) +{ + struct tegra_context *context = to_tegra_context(pcontext); + + context->gpu->destroy(context->gpu); + free(context); +} + +static void +tegra_draw_vbo(struct pipe_context *pcontext, + const struct pipe_draw_info *pinfo) +{ + struct tegra_context *context = to_tegra_...
2014 Mar 01
1
[PATCH] nouveau: add valid range tracking to nouveau_buffer
...au_fence_ref(NULL, &res->fence); nouveau_fence_ref(NULL, &res->fence_wr); + util_range_destroy(&res->valid_buffer_range); + FREE(res); NOUVEAU_DRV_STAT(nouveau_screen(pscreen), buf_obj_current_count, -1); @@ -387,6 +391,17 @@ nouveau_buffer_transfer_map(struct pipe_context *pipe, if (usage & PIPE_TRANSFER_WRITE) NOUVEAU_DRV_STAT(nv->screen, buf_transfers_wr, 1); + /* If we are trying to write to an uninitialized range, the user shouldn't + * care what was there before. So we can treat the write as if the target + * range were being dis...
2015 Jun 22
2
[RFC PATCH 5/8] nv50: prevent NULL pointer dereference with pipe_query functions
...gt; index 55fcac8..1162110 100644 > --- a/src/gallium/drivers/nouveau/nv50/nv50_query.c > +++ b/src/gallium/drivers/nouveau/nv50/nv50_query.c > @@ -96,6 +96,9 @@ nv50_query_allocate(struct nv50_context *nv50, struct nv50_query *q, int size) > static void > nv50_query_destroy(struct pipe_context *pipe, struct pipe_query *pq) > { > + if (!pq) > + return; > + > nv50_query_allocate(nv50_context(pipe), nv50_query(pq), 0); > nouveau_fence_ref(NULL, &nv50_query(pq)->fence); > FREE(nv50_query(pq)); > @@ -152,6 +155,9 @@ nv50_query_begin(struct pi...
2014 Feb 13
2
[PATCH] nv50: make sure to clear _all_ layers of all attachments
...iff --git a/src/gallium/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c index a22436b..68924c9 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c @@ -303,7 +303,7 @@ nv50_clear_render_target(struct pipe_context *pipe, PUSH_DATA(push, NV50_3D_RT_HORIZ_LINEAR | mt->level[0].pitch); PUSH_DATA (push, sf->height); BEGIN_NV04(push, NV50_3D(RT_ARRAY_MODE), 1); - PUSH_DATA (push, 1); + PUSH_DATA (push, 512); if (!nouveau_bo_memtype(bo)) { BEGIN_NV04(push, NV50_3D(ZETA_ENABLE)...
2014 Jan 17
2
[PATCH] nv50, nvc0: only clear out the buffers that we were asked to clear
...eletions(-) diff --git a/src/gallium/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c index 358f57a..eb27429 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c @@ -408,9 +408,6 @@ nv50_clear(struct pipe_context *pipe, unsigned buffers, PUSH_DATAf(push, color->f[1]); PUSH_DATAf(push, color->f[2]); PUSH_DATAf(push, color->f[3]); - mode = - NV50_3D_CLEAR_BUFFERS_R | NV50_3D_CLEAR_BUFFERS_G | - NV50_3D_CLEAR_BUFFERS_B | NV50_3D_CLEAR_BUFFERS_A; } if...
2010 Jan 18
0
[PATCH] nv30-nv40: support unlimited queries (v2)
...-- a/src/gallium/drivers/nv30/nv30_query.c +++ b/src/gallium/drivers/nv30/nv30_query.c @@ -3,6 +3,7 @@ #include "nv30_context.h" struct nv30_query { + struct list_head list; struct nouveau_resource *object; unsigned type; boolean ready; @@ -23,6 +24,8 @@ nv30_query_create(struct pipe_context *pipe, unsigned query_type) q = CALLOC(1, sizeof(struct nv30_query)); q->type = query_type; + assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER); + return (struct pipe_query *)q; } @@ -32,7 +35,10 @@ nv30_query_destroy(struct pipe_context *pipe, struct pipe_query *pq) struct nv30_qu...
2013 Dec 02
2
[PATCH] nouveau: Add lots of comments to the buffer transfer logic
...e maintained. + * + * DISCARD_RANGE means that all the data in the specified range is going to + * be overwritten. + * + * The strategy for determining what kind of memory area to return is complex, + * see comments inside of the function. + */ static void * nouveau_buffer_transfer_map(struct pipe_context *pipe, struct pipe_resource *resource, @@ -352,11 +389,17 @@ nouveau_buffer_transfer_map(struct pipe_context *pipe, if (buf->domain == NOUVEAU_BO_VRAM) { if (usage & NOUVEAU_TRANSFER_DISCARD) { + /* Set up a staging area for the user to write...
2014 May 21
2
[Mesa-dev] [PATCH 02/12] nv50: setup scissors on clear_render_target/depth_stencil
...um/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c > index 1f37527..6e68fb8 100644 > --- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c > +++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c > @@ -288,6 +288,14 @@ nv50_clear_render_target(struct pipe_context *pipe, > > PUSH_REFN(push, bo, mt->base.domain | NOUVEAU_BO_WR); > > + BEGIN_NV04(push, NV50_3D(SCREEN_SCISSOR_HORIZ), 2); > + PUSH_DATA (push, ( width << 16) | dstx); > + PUSH_DATA (push, (height << 16) | dsty); > + BEGIN_NV04(push, NV50_3D(SCISS...
2014 Jul 01
1
[PATCH 1/2] nv50: do an explicit flush on draw when there are persistent buffers
...git a/src/gallium/drivers/nouveau/nv50/nv50_context.c b/src/gallium/drivers/nouveau/nv50/nv50_context.c index 3f3a888..c2eb0c0 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_context.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_context.c @@ -61,7 +61,7 @@ static void nv50_memory_barrier(struct pipe_context *pipe, unsigned flags) { struct nv50_context *nv50 = nv50_context(pipe); - int i; + int i, s; if (flags & PIPE_BARRIER_MAPPED_BUFFER) { for (i = 0; i < nv50->num_vtxbufs; ++i) { @@ -74,6 +74,26 @@ nv50_memory_barrier(struct pipe_context *pipe, unsigned flags)...
2010 Jan 18
2
[PATCH 1/2] nv30-nv40: support unlimited queries
...c/gallium/drivers/nv30/nv30_query.c +++ b/src/gallium/drivers/nv30/nv30_query.c @@ -3,6 +3,7 @@ #include "nv30_context.h" struct nv30_query { + struct list_head list; struct nouveau_resource *object; unsigned type; boolean ready; @@ -23,6 +24,8 @@ nv30_query_create(struct pipe_context *pipe, unsigned query_type) q = CALLOC(1, sizeof(struct nv30_query)); q->type = query_type; + assert(q->type == PIPE_QUERY_OCCLUSION_COUNTER); + return (struct pipe_query *)q; } @@ -32,7 +35,10 @@ nv30_query_destroy(struct pipe_context *pipe, struct pipe_query *pq) struct n...
2014 Jan 23
2
[Mesa-dev] [PATCH] nv50, nvc0: only clear out the buffers that we were asked to clear
...m/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c >> index 358f57a..eb27429 100644 >> --- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c >> +++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c >> @@ -408,9 +408,6 @@ nv50_clear(struct pipe_context *pipe, unsigned buffers, >> PUSH_DATAf(push, color->f[1]); >> PUSH_DATAf(push, color->f[2]); >> PUSH_DATAf(push, color->f[3]); >> - mode = >> - NV50_3D_CLEAR_BUFFERS_R | NV50_3D_CLEAR_BUFFERS_G | >> - NV50_3D_CLE...
2014 May 27
1
[PATCH V3] nvc0: implement clear_buffer
...f --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c index 6b7c30c..3572193 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c @@ -345,6 +345,156 @@ nvc0_clear_render_target(struct pipe_context *pipe, } static void +nvc0_clear_buffer_cpu(struct pipe_context *pipe, + struct pipe_resource *res, + unsigned offset, unsigned size, + const void *data, int data_size) +{ + struct nv04_resource *buf = nv04_resource(res); + stru...
2016 Feb 15
2
[PATCH 23/23] nvc0: implement support for maxwell texture headers
...include "nvc0/nvc0_context.h" > #include "nvc0/nvc0_resource.h" > +#include "nvc0/gm107_texture.xml.h" > #include "nv50/g80_texture.xml.h" > #include "nv50/g80_defs.xml.h" > > @@ -59,12 +60,188 @@ nvc0_create_sampler_view(struct pipe_context *pipe, > return nvc0_create_texture_view(pipe, res, templ, flags, templ->target); > } > > -struct pipe_sampler_view * > -nvc0_create_texture_view(struct pipe_context *pipe, > - struct pipe_resource *texture, > - const stru...
2014 May 26
1
[PATCH V2] nvc0: implement clear_buffer
...f --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c index 6b7c30c..242924a 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c @@ -345,6 +345,156 @@ nvc0_clear_render_target(struct pipe_context *pipe, } static void +nvc0_clear_buffer_cpu(struct pipe_context *pipe, + struct pipe_resource *res, + unsigned offset, unsigned size, + const void *data, int data_size) +{ + struct nv04_resource *buf = nv04_resource(res); + stru...
2015 Sep 03
10
[PATCH mesa 0/4] nv30: Various fixes
Hi All, Here is a bunch of fixes for nv30 cards, the first patch is a resend of a patch I send a while back. AFAICT that one is ready for merging, but it is not entirely clear to me what the process is for getting (nouveau) mesa patches merged. Should I request commit rights, and push my own patches once they have been reviewed ? Regards, Hans
2014 May 26
2
Implement buffer_clear for nvc0
Hi, please review the following patch! Thanks, Tobias Klausmann
2014 May 20
0
[PATCH 02/12] nv50: setup scissors on clear_render_target/depth_stencil
...ff --git a/src/gallium/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c index 1f37527..6e68fb8 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c @@ -288,6 +288,14 @@ nv50_clear_render_target(struct pipe_context *pipe, PUSH_REFN(push, bo, mt->base.domain | NOUVEAU_BO_WR); + BEGIN_NV04(push, NV50_3D(SCREEN_SCISSOR_HORIZ), 2); + PUSH_DATA (push, ( width << 16) | dstx); + PUSH_DATA (push, (height << 16) | dsty); + BEGIN_NV04(push, NV50_3D(SCISSOR_HORIZ(0)), 2); + PUSH_DATA (pu...