Re: [Mesa-dev] [PATCH v2 1/2] gallium: add cap to export device pointer size

2016-08-29 Thread Ilia Mirkin
On Mon, Aug 29, 2016 at 2:19 PM, Jan Vesely  wrote:
> On Mon, 2016-08-29 at 14:47 +0200, Marek Olšák wrote:
>> On Sun, Aug 28, 2016 at 7:57 PM, Jan Vesely 
>> wrote:
>> >
>> > v2: document the new cap
>> >
>> > Signed-off-by: Jan Vesely 
>> > ---
>> >  src/gallium/docs/source/screen.rst | 1 +
>> >  src/gallium/drivers/ilo/ilo_screen.c   | 6 ++
>> >  src/gallium/drivers/nouveau/nv50/nv50_screen.c | 2 ++
>> >  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 ++
>> >  src/gallium/drivers/radeon/r600_pipe_common.c  | 8 
>> >  src/gallium/drivers/softpipe/sp_screen.c   | 1 +
>> >  src/gallium/include/pipe/p_defines.h   | 1 +
>> >  7 files changed, 21 insertions(+)
>> >
>> > diff --git a/src/gallium/docs/source/screen.rst
>> > b/src/gallium/docs/source/screen.rst
>> > index c00d012..8c67604 100644
>> > --- a/src/gallium/docs/source/screen.rst
>> > +++ b/src/gallium/docs/source/screen.rst
>> > @@ -496,6 +496,7 @@ pipe_screen::get_compute_param.
>> >non-zero means yes, zero means no. Value type: ``uint32_t``
>> >  * ``PIPE_COMPUTE_CAP_SUBGROUP_SIZE``: The size of a basic
>> > execution unit in
>> >threads. Also known as wavefront size, warp size or SIMD width.
>> > +* ``PIPE_COMPUTE_CAP_ADDRESS_BITS``: The default compute device
>> > address space size specified as an unsigned integer value in bits.
>>
>> There is the 80 chars per line limit in this file.
>
> I'll fix that locally before pushing.
> @Illia, are you OK with the nouveau bits?

Acked-by: Ilia Mirkin 

It's a bit academic for nouveau, as there's no opencl support, but
perhaps hansg will finish that work some day. We can figure out what
the right thing is then, in case it's not what's in your patch today.

  -ilia
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH v2 1/2] gallium: add cap to export device pointer size

2016-08-29 Thread Jan Vesely
On Mon, 2016-08-29 at 14:47 +0200, Marek Olšák wrote:
> On Sun, Aug 28, 2016 at 7:57 PM, Jan Vesely 
> wrote:
> > 
> > v2: document the new cap
> > 
> > Signed-off-by: Jan Vesely 
> > ---
> >  src/gallium/docs/source/screen.rst | 1 +
> >  src/gallium/drivers/ilo/ilo_screen.c   | 6 ++
> >  src/gallium/drivers/nouveau/nv50/nv50_screen.c | 2 ++
> >  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 ++
> >  src/gallium/drivers/radeon/r600_pipe_common.c  | 8 
> >  src/gallium/drivers/softpipe/sp_screen.c   | 1 +
> >  src/gallium/include/pipe/p_defines.h   | 1 +
> >  7 files changed, 21 insertions(+)
> > 
> > diff --git a/src/gallium/docs/source/screen.rst
> > b/src/gallium/docs/source/screen.rst
> > index c00d012..8c67604 100644
> > --- a/src/gallium/docs/source/screen.rst
> > +++ b/src/gallium/docs/source/screen.rst
> > @@ -496,6 +496,7 @@ pipe_screen::get_compute_param.
> >    non-zero means yes, zero means no. Value type: ``uint32_t``
> >  * ``PIPE_COMPUTE_CAP_SUBGROUP_SIZE``: The size of a basic
> > execution unit in
> >    threads. Also known as wavefront size, warp size or SIMD width.
> > +* ``PIPE_COMPUTE_CAP_ADDRESS_BITS``: The default compute device
> > address space size specified as an unsigned integer value in bits.
> 
> There is the 80 chars per line limit in this file.

I'll fix that locally before pushing.
@Illia, are you OK with the nouveau bits?


> 
> Other than that, the patch is:
> 
> Reviewed-by: Marek Olšák 

thanks,
Jan

> 
> Marek
-- 
Jan Vesely 

signature.asc
Description: This is a digitally signed message part
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH v2 1/2] gallium: add cap to export device pointer size

2016-08-29 Thread Marek Olšák
On Sun, Aug 28, 2016 at 7:57 PM, Jan Vesely  wrote:
> v2: document the new cap
>
> Signed-off-by: Jan Vesely 
> ---
>  src/gallium/docs/source/screen.rst | 1 +
>  src/gallium/drivers/ilo/ilo_screen.c   | 6 ++
>  src/gallium/drivers/nouveau/nv50/nv50_screen.c | 2 ++
>  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 ++
>  src/gallium/drivers/radeon/r600_pipe_common.c  | 8 
>  src/gallium/drivers/softpipe/sp_screen.c   | 1 +
>  src/gallium/include/pipe/p_defines.h   | 1 +
>  7 files changed, 21 insertions(+)
>
> diff --git a/src/gallium/docs/source/screen.rst 
> b/src/gallium/docs/source/screen.rst
> index c00d012..8c67604 100644
> --- a/src/gallium/docs/source/screen.rst
> +++ b/src/gallium/docs/source/screen.rst
> @@ -496,6 +496,7 @@ pipe_screen::get_compute_param.
>non-zero means yes, zero means no. Value type: ``uint32_t``
>  * ``PIPE_COMPUTE_CAP_SUBGROUP_SIZE``: The size of a basic execution unit in
>threads. Also known as wavefront size, warp size or SIMD width.
> +* ``PIPE_COMPUTE_CAP_ADDRESS_BITS``: The default compute device address 
> space size specified as an unsigned integer value in bits.

There is the 80 chars per line limit in this file.

Other than that, the patch is:

Reviewed-by: Marek Olšák 

Marek
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH v2 1/2] gallium: add cap to export device pointer size

2016-08-28 Thread Jan Vesely
v2: document the new cap

Signed-off-by: Jan Vesely 
---
 src/gallium/docs/source/screen.rst | 1 +
 src/gallium/drivers/ilo/ilo_screen.c   | 6 ++
 src/gallium/drivers/nouveau/nv50/nv50_screen.c | 2 ++
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 2 ++
 src/gallium/drivers/radeon/r600_pipe_common.c  | 8 
 src/gallium/drivers/softpipe/sp_screen.c   | 1 +
 src/gallium/include/pipe/p_defines.h   | 1 +
 7 files changed, 21 insertions(+)

diff --git a/src/gallium/docs/source/screen.rst 
b/src/gallium/docs/source/screen.rst
index c00d012..8c67604 100644
--- a/src/gallium/docs/source/screen.rst
+++ b/src/gallium/docs/source/screen.rst
@@ -496,6 +496,7 @@ pipe_screen::get_compute_param.
   non-zero means yes, zero means no. Value type: ``uint32_t``
 * ``PIPE_COMPUTE_CAP_SUBGROUP_SIZE``: The size of a basic execution unit in
   threads. Also known as wavefront size, warp size or SIMD width.
+* ``PIPE_COMPUTE_CAP_ADDRESS_BITS``: The default compute device address space 
size specified as an unsigned integer value in bits.
 
 .. _pipe_bind:
 
diff --git a/src/gallium/drivers/ilo/ilo_screen.c 
b/src/gallium/drivers/ilo/ilo_screen.c
index 050c03b..b9e5ad6 100644
--- a/src/gallium/drivers/ilo/ilo_screen.c
+++ b/src/gallium/drivers/ilo/ilo_screen.c
@@ -199,6 +199,7 @@ ilo_get_compute_param(struct pipe_screen *screen,
   uint32_t max_compute_units;
   uint32_t images_supported;
   uint32_t subgroup_size;
+  uint32_t address_bits;
} val;
const void *ptr;
int size;
@@ -266,6 +267,11 @@ ilo_get_compute_param(struct pipe_screen *screen,
   ptr = _input_size;
   size = sizeof(val.max_input_size);
   break;
+   case PIPE_COMPUTE_CAP_ADDRESS_BITS:
+  val.address_bits = 32;
+  ptr = _bits;
+  size = sizeof(val.address_bits);
+  break;
case PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE:
   val.max_mem_alloc_size = 1u << 31;
 
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c 
b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index d878547..57c0c2b 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
@@ -418,6 +418,8 @@ nv50_screen_get_compute_param(struct pipe_screen *pscreen,
   RET((uint32_t []) { screen->mp_count });
case PIPE_COMPUTE_CAP_MAX_CLOCK_FREQUENCY:
   RET((uint32_t []) { 512 }); /* FIXME: arbitrary limit */
+   case PIPE_COMPUTE_CAP_ADDRESS_BITS:
+  RET((uint32_t []) { 32 });
default:
   return 0;
}
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
index f139f66..e7bfbbe 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
@@ -479,6 +479,8 @@ nvc0_screen_get_compute_param(struct pipe_screen *pscreen,
   RET((uint32_t []) { screen->mp_count_compute });
case PIPE_COMPUTE_CAP_MAX_CLOCK_FREQUENCY:
   RET((uint32_t []) { 512 }); /* FIXME: arbitrary limit */
+   case PIPE_COMPUTE_CAP_ADDRESS_BITS:
+  RET((uint32_t []) { 64 });
default:
   return 0;
}
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
b/src/gallium/drivers/radeon/r600_pipe_common.c
index b1da22f..1b15594 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -881,6 +881,14 @@ static int r600_get_compute_param(struct pipe_screen 
*screen,
*max_threads_per_block = 256;
}
return sizeof(uint64_t);
+   case PIPE_COMPUTE_CAP_ADDRESS_BITS:
+   if (ret) {
+   uint32_t *address_bits = ret;
+   address_bits[0] = 32;
+   if (rscreen->chip_class >= SI)
+   address_bits[0] = 64;
+   }
+   return 1 * sizeof(uint32_t);
 
case PIPE_COMPUTE_CAP_MAX_GLOBAL_SIZE:
if (ret) {
diff --git a/src/gallium/drivers/softpipe/sp_screen.c 
b/src/gallium/drivers/softpipe/sp_screen.c
index b742bde..cd4269f 100644
--- a/src/gallium/drivers/softpipe/sp_screen.c
+++ b/src/gallium/drivers/softpipe/sp_screen.c
@@ -521,6 +521,7 @@ softpipe_get_compute_param(struct pipe_screen *_screen,
case PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS:
case PIPE_COMPUTE_CAP_IMAGES_SUPPORTED:
case PIPE_COMPUTE_CAP_SUBGROUP_SIZE:
+   case PIPE_COMPUTE_CAP_ADDRESS_BITS:
   break;
}
return 0;
diff --git a/src/gallium/include/pipe/p_defines.h 
b/src/gallium/include/pipe/p_defines.h
index 1e4d802..5361ed6 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -834,6 +834,7 @@ enum pipe_shader_ir
  */
 enum pipe_compute_cap
 {
+   PIPE_COMPUTE_CAP_ADDRESS_BITS,
PIPE_COMPUTE_CAP_IR_TARGET,
PIPE_COMPUTE_CAP_GRID_DIMENSION,
PIPE_COMPUTE_CAP_MAX_GRID_SIZE,
-- 
2.7.4

___