Displaying 20 results from an estimated 36 matches for "pipe_buffer".
2014 Mar 01
1
[PATCH] nouveau: add valid range tracking to nouveau_buffer
This logic is borrowed from the radeon code. The transfer logic will
only get called for PIPE_BUFFER resources, so it shouldn't be necessary
to worry about them becoming render targets.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
A user reported a ~30% FPS improvement with an earlier version of this patch
in TF2, and no visual regressions in CS, all on a nv50 card. (Source...
2009 Dec 20
2
[PATCH 1/2] nv50: don't emit reloc markers after a referenced vtxbuf is mapped
.../gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c
index e4cf91c..c85057a 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.c
+++ b/src/gallium/drivers/nouveau/nouveau_screen.c
@@ -127,8 +127,18 @@ nouveau_screen_bo_map(struct pipe_screen *pscreen, struct pipe_buffer *pb,
unsigned usage)
{
struct nouveau_bo *bo = nouveau_bo(pb);
+ struct nouveau_screen *nscreen = nouveau_screen(pscreen);
int ret;
+ if (nscreen->pre_pipebuffer_map_callback) {
+ ret = nscreen->pre_pipebuffer_map_callback(pscreen, pb, usage);
+ if (ret) {
+ debug_printf(&...
2009 Dec 20
1
[PATCH] nv50: remove vtxbuf stateobject after a referenced vtxbuf is mapped
.../gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c
index e4cf91c..c85057a 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.c
+++ b/src/gallium/drivers/nouveau/nouveau_screen.c
@@ -127,8 +127,18 @@ nouveau_screen_bo_map(struct pipe_screen *pscreen, struct pipe_buffer *pb,
unsigned usage)
{
struct nouveau_bo *bo = nouveau_bo(pb);
+ struct nouveau_screen *nscreen = nouveau_screen(pscreen);
int ret;
+ if (nscreen->pre_pipebuffer_map_callback) {
+ ret = nscreen->pre_pipebuffer_map_callback(pscreen, pb, usage);
+ if (ret) {
+ debug_printf(&...
2010 Jan 18
0
[PATCH] nv04-nv40: Rewrite and unify miptree and transfer code (v2)
...g" mail.
The image_offset array is removed, since it can be calculated with a
simple multiplication; the only array in the miptree structure is now
the one for mipmap level starts, which it seems cannot be easily
computed in constant time.
Also, we now directly store a nouveau_bo instead of a pipe_buffer in
the miptree structure, like nv50 does.
All the deletions are due to the nv04-nv40 unification.
Support for render temporaries is removed, and will be readded in a
later patch.
Note that the current temporary code is broken, because it does not
copy the temporary back on render cache flushes....
2010 Jan 18
0
[PATCH] nv04-nv40: Rewrite and unify miptree and transfer code
...g" mail.
The image_offset array is removed, since it can be calculated with a
simple multiplication; the only array in the miptree structure is now
the one for mipmap level starts, which it seems cannot be easily
computed in constant time.
Also, we now directly store a nouveau_bo instead of a pipe_buffer in
the miptree structure, like nv50 does.
All the deletions are due to the nv04-nv40 unification.
Support for render temporaries is removed, and will be readded in a
later patch.
Note that the current temporary code is broken, because it does not
copy the temporary back on render cache flushes....
2008 May 15
3
[PATCH 1/4] ocfs2: Fixes pipe_buf_operations->pin switch to confirm in 2.6.23.
Signed-off-by: Tiger Yang <tiger.yang at oracle.com>
---
Config.make.in | 1 +
configure.in | 6 ++++++
fs/ocfs2/Makefile | 4 ++++
kapi-compat/include/pipe_buf_operations.h | 10 ++++++++++
4 files changed, 21 insertions(+), 0 deletions(-)
create mode 100644 kapi-compat/include/pipe_buf_operations.h
2014 Nov 13
1
[PATCH 52/56] drivers/char/virtio: support compiling out splice
...sole.c b/drivers/char/virtio_console.c
index b585b47..de5e2cb 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -870,6 +870,7 @@ struct sg_list {
struct scatterlist *sg;
};
+#ifdef CONFIG_SYSCALL_SPLICE
static int pipe_to_sg(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
struct splice_desc *sd)
{
@@ -976,6 +977,7 @@ error_out:
pipe_unlock(pipe);
return ret;
}
+#endif /* #ifdef CONFIG_SYSCALL_SPLICE */
static unsigned int port_fops_poll(struct file *filp, poll_table *wait)
{
@@ -1109,7 +1111,7 @@ static const struct file_operations port_fops = {...
2014 Nov 13
1
[PATCH 52/56] drivers/char/virtio: support compiling out splice
...sole.c b/drivers/char/virtio_console.c
index b585b47..de5e2cb 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -870,6 +870,7 @@ struct sg_list {
struct scatterlist *sg;
};
+#ifdef CONFIG_SYSCALL_SPLICE
static int pipe_to_sg(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
struct splice_desc *sd)
{
@@ -976,6 +977,7 @@ error_out:
pipe_unlock(pipe);
return ret;
}
+#endif /* #ifdef CONFIG_SYSCALL_SPLICE */
static unsigned int port_fops_poll(struct file *filp, poll_table *wait)
{
@@ -1109,7 +1111,7 @@ static const struct file_operations port_fops = {...
2015 Dec 22
0
Translating tests/trivial/compute.c gallium tests to opencl (input / help wanted)
...ernel launch, I'm keeping the compute
kernels in tgsi as an intermediate step).
I've got the test_input_global() test working, see:
https://fedorapeople.org/~jwrdegoede/compute-opencl-tgsi.c
Next I wanted to convert the test_system_values() test and there
I've gotten stuck. It uses a PIPE_BUFFER which it rw-binds as a
resource. Which OpenCL does not allow. The closest thing is a
constant parameter in OpenCL, at first I've tried binding this
as a 2d image, but that leads to the gpu hanging, this is the
code activated with "#define USE_IMAGE_FOR_BUF 1" in the above
file.
So in...
2016 Jun 05
0
[RFC PATCH] nouveau: add locking
...surface.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c
@@ -204,10 +204,13 @@ nv50_resource_copy_region(struct pipe_context *pipe,
bool m2mf;
unsigned dst_layer = dstz, src_layer = src_box->z;
+ pipe_mutex_lock(nv50->screen->base.push_mutex);
+
if (dst->target == PIPE_BUFFER && src->target == PIPE_BUFFER) {
nouveau_copy_buffer(&nv50->base,
nv04_resource(dst), dstx,
nv04_resource(src), src_box->x, src_box->width);
+ pipe_mutex_unlock(nv50->screen->base.push_mutex);
ret...
2014 May 27
1
[PATCH V3] nvc0: implement clear_buffer
...)
+{
+ struct nvc0_context *nvc0 = nvc0_context(pipe);
+ struct nouveau_pushbuf *push = nvc0->base.pushbuf;
+ struct nv04_resource *buf = nv04_resource(res);
+ union pipe_color_union color;
+ enum pipe_format dst_fmt;
+ unsigned width, height, elements;
+
+ assert(res->target == PIPE_BUFFER);
+ assert(nouveau_bo_memtype(buf->bo) == 0);
+
+ switch (data_size) {
+ case 16:
+ dst_fmt = PIPE_FORMAT_R32G32B32A32_UINT;
+ memcpy(&color.ui, data, 16);
+ break;
+ case 12:
+ /*
+ * dst_fmt = PIPE_FORMAT_R32G32B32_UINT;
+ * memcpy(&color.ui, dat...
2015 Nov 26
2
NV50 compute support questions
Hi,
On 26-11-15 09:42, Samuel Pitoiset wrote:
> Well, if you remove that assert locally, all compute tests in src/gallium/tests/trivial/compute.c pass on GK106, except the atomic ones.
Do you mean the:
Assertion `pres->target != PIPE_BUFFER' failed.
or the:
Assertion `tex->defExists(0) && tex->srcExists(0)' failed.
assert? Or is the first one not present for Keppler?
I do not have a GK106, I've a GK208, and IIRC that one is known to not work,
I guess I can give it a try.
> I'm working on the ferm...
2014 May 26
1
[PATCH V2] nvc0: implement clear_buffer
...)
+{
+ struct nvc0_context *nvc0 = nvc0_context(pipe);
+ struct nouveau_pushbuf *push = nvc0->base.pushbuf;
+ struct nv04_resource *buf = nv04_resource(res);
+ union pipe_color_union color;
+ enum pipe_format dst_fmt;
+ unsigned width, height, elements;
+
+ assert(res->target == PIPE_BUFFER);
+ assert(nouveau_bo_memtype(buf->bo) == 0);
+
+ switch (data_size) {
+ case 16:
+ dst_fmt = PIPE_FORMAT_R32G32B32A32_UINT;
+ memcpy(&color.ui, data, 16);
+ break;
+ case 12:
+ //dst_fmt = PIPE_FORMAT_R32G32B32_UINT;
+ //memcpy(&color.ui, data, 12);
+...
2015 Nov 25
4
NV50 compute support questions
...rther any hints
for how to debug this are appreciated.
So I tried to run src/gallium/tests/trivial/compute.c,
with a recent mesa master, but that does not work either.
I get the following when I try to run this:
compute: nvc0/nvc0_resource.c:41: nvc0_surface_create: Assertion `pres->target != PIPE_BUFFER' failed.
(gdb) bt
#0 0x00007ffff6cbca98 in raise () from /lib64/libc.so.6
#1 0x00007ffff6cbe69a in abort () from /lib64/libc.so.6
#2 0x00007ffff6cb5227 in __assert_fail_base () from /lib64/libc.so.6
#3 0x00007ffff6cb52d2 in __assert_fail () from /lib64/libc.so.6
#4 0x00007ffff4e5b24c in n...
2012 Aug 09
8
[PATCH V2 0/6] virtio-trace: Support virtio-trace
Hi All,
The following patch set provides a low-overhead system for collecting kernel
tracing data of guests by a host in a virtualization environment.
A guest OS generally shares some devices with other guests or a host, so
reasons of any problems occurring in a guest may be from other guests or a host.
Then, to collect some tracing data of a number of guests and a host is needed
when some
2012 Aug 09
8
[PATCH V2 0/6] virtio-trace: Support virtio-trace
Hi All,
The following patch set provides a low-overhead system for collecting kernel
tracing data of guests by a host in a virtualization environment.
A guest OS generally shares some devices with other guests or a host, so
reasons of any problems occurring in a guest may be from other guests or a host.
Then, to collect some tracing data of a number of guests and a host is needed
when some
2015 Nov 26
0
NV50 compute support questions
...e:
> Hi,
>
> On 26-11-15 09:42, Samuel Pitoiset wrote:
>> Well, if you remove that assert locally, all compute tests in
>> src/gallium/tests/trivial/compute.c pass on GK106, except the atomic
>> ones.
>
> Do you mean the:
>
> Assertion `pres->target != PIPE_BUFFER' failed.
>
> or the:
>
> Assertion `tex->defExists(0) && tex->srcExists(0)' failed.
>
> assert? Or is the first one not present for Keppler?
The first one. The second one doesn't happen on Kepler.
>
> I do not have a GK106, I've a GK208,...
2014 May 26
2
Implement buffer_clear for nvc0
Hi, please review the following patch!
Thanks,
Tobias Klausmann
2014 Nov 13
0
[PATCH 52/56] drivers/char/virtio: support compiling out splice
...ndex b585b47..de5e2cb 100644
> --- a/drivers/char/virtio_console.c
> +++ b/drivers/char/virtio_console.c
> @@ -870,6 +870,7 @@ struct sg_list {
> struct scatterlist *sg;
> };
>
> +#ifdef CONFIG_SYSCALL_SPLICE
> static int pipe_to_sg(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
> struct splice_desc *sd)
> {
> @@ -976,6 +977,7 @@ error_out:
> pipe_unlock(pipe);
> return ret;
> }
> +#endif /* #ifdef CONFIG_SYSCALL_SPLICE */
Not worth the #ifdef mess.
2009 May 11
1
[PATCH] nv50/gallium: small fix for nv50_transfer_rect_m2mf (sy <-> dy)
...iff --git a/src/gallium/drivers/nv50/nv50_transfer.c b/src/gallium/drivers/nv50/nv50_transfer.c
index 747195b..41d8160 100644
--- a/src/gallium/drivers/nv50/nv50_transfer.c
+++ b/src/gallium/drivers/nv50/nv50_transfer.c
@@ -79,13 +79,13 @@ nv50_transfer_rect_m2mf(struct pipe_screen *pscreen, struct pipe_buffer *src,
OUT_RELOCl(chan, dst_bo, dst_offset, dst_reloc);
if (src_bo->tiled) {
BEGIN_RING(chan, m2mf, 0x0218, 1);
- OUT_RING (chan, (dy << 16) | sx);
+ OUT_RING (chan, (sy << 16) | sx);
} else {
src_offset += (line_count * src_pitch);
}
if (dst_bo->tiled)...