[Mesa-dev] [PATCH 1/5] nv50: implement a basic compute support

Emil Velikov emil.l.velikov at gmail.com
Mon Nov 16 02:47:26 PST 2015


On 16 November 2015 at 10:39, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> Hi Samuel,
>
> On 13 November 2015 at 00:04, Samuel Pitoiset <samuel.pitoiset at gmail.com> wrote:
>> This adds the ability to launch simple compute kernels like the one I
>> will use to read out MP performance counters in the upcoming patch.
>>
>> This compute support is based on the work of Francisco Jerez (aka curro)
>> that he did as part of his EVoC project in 2011/2012 to get OpenCL
>> working on Tesla. His original work can be found here:
>> https://github.com/curro/mesa/commits/nv50-compute
>>
>> I did some improvements on the original code, like fixing using both 3D
>> and COMPUTE simultaneously, improving global buffers binding, and making
>> the code closer to what nvc0 already does. This compute support has been
>> tested by Pierre Moreau and myself with some compute kernels. This is a
>> step towards OpenCL.
>>
>> Speaking about this, it seems like compute programs overlap fragment
>> programs when they are used both. To fix this, we need to re-validate
>> fragment programs when binding compute programs and vice versa.
>>
>> Note that, textures, samplers and surfaces still need to be implemented.
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> Tested-by: Pierre Moreau <pierre.morrow at free.fr>
>> ---
>>  src/gallium/drivers/nouveau/Makefile.sources       |   1 +
>>  .../drivers/nouveau/codegen/nv50_ir_driver.h       |   1 +
>>  src/gallium/drivers/nouveau/nv50/nv50_compute.c    | 332 +++++++++++++++
>>  .../drivers/nouveau/nv50/nv50_compute.xml.h        | 444 +++++++++++++++++++++
>>  src/gallium/drivers/nouveau/nv50/nv50_context.c    |  30 +-
>>  src/gallium/drivers/nouveau/nv50/nv50_context.h    |  23 +-
>>  src/gallium/drivers/nouveau/nv50/nv50_program.c    |  24 +-
>>  src/gallium/drivers/nouveau/nv50/nv50_program.h    |   7 +
>>  src/gallium/drivers/nouveau/nv50/nv50_screen.c     |  61 ++-
>>  src/gallium/drivers/nouveau/nv50/nv50_screen.h     |   8 +
>>  src/gallium/drivers/nouveau/nv50/nv50_state.c      |  99 +++++
>>  11 files changed, 1021 insertions(+), 9 deletions(-)
>>  create mode 100644 src/gallium/drivers/nouveau/nv50/nv50_compute.c
>>  create mode 100644 src/gallium/drivers/nouveau/nv50/nv50_compute.xml.h
>>
>> diff --git a/src/gallium/drivers/nouveau/Makefile.sources b/src/gallium/drivers/nouveau/Makefile.sources
>> index 83f8113..c2ff8e9 100644
>> --- a/src/gallium/drivers/nouveau/Makefile.sources
>> +++ b/src/gallium/drivers/nouveau/Makefile.sources
>> @@ -64,6 +64,7 @@ NV50_C_SOURCES := \
>>         nv50/nv50_3ddefs.xml.h \
>>         nv50/nv50_3d.xml.h \
>>         nv50/nv50_blit.h \
>> +       nv50/nv50_compute.c \
> Please add the header into the list
> nv50/nv50_compute.xml.h
>
Ouch, did not see that you've pushed the series. No need to do
anything - I've just committed a fix.

-Emil


More information about the mesa-dev mailing list