Re: [Mesa-dev] [PATCH v2 1/2] gallium: add cap to export device pointer size
On Mon, Aug 29, 2016 at 2:19 PM, Jan Veselywrote: > 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
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
On Sun, Aug 28, 2016 at 7:57 PM, Jan Veselywrote: > 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
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 ___