[Mesa-dev] [PATCH] mesa: define nir_spirv_supported_capabilities
Timothy Arceri
tarceri at itsqueeze.com
Thu Dec 7 04:48:46 UTC 2017
On 07/12/17 00:23, Alejandro Piñeiro wrote:
> On 06/12/17 13:29, Pierre Moreau wrote:
>> Hello Alejandro,
>>
>> As far as I understand, nir_spirv_supported_capabilities is being filled in by
>> the driver and then fetched by the API entrypoint to check the capabilities
>> required by the SPIR-V binary given as input. And this is done regardless of
>> the input IR used by the driver, be it NIR, LLVM IR, TGSI or others. So
>> couldn’t it be just named spirv_supported_capabilities? Unless it also reflects
>> the capabilities supported by the IR being used.
>
> Good point. spirv_supported_capabilities is probably a better name,
> although right now, it would be only used on the spirv to nir pass. I
> will not send a new version of the patch with just the renaming, but for
> anyone interested on review the commit, I will use that name.
I would be much happier with this being in mtypes.h with that name. So
if renamed:
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
>
>> I guess nir_spirv_supported_capabilities could be extended later on to also add
>> capabilities specific to OpenCL when clover reaches OpenCL 1.2 support (and can
>> start accepting SPIR-V binaries as input through the cl_khr_il_program
>> extension), or would it be better to have a separate one for OpenCL?
>
> Probably it would be re-used, but I don't know the specifics of OpenCL
> to ensure 100% that.
>
>>
>> I haven’t had time to look at the whole gl_spirv series yet, so I am sorry if
>> this is something that has already been brought and answered in that thread.
>
> No sorries, your feedback was good and welcomed.
>>
>> Regards,
>> Pierre
>>
>> On 2017-12-06 — 09:57, Alejandro Piñeiro wrote:
>>> Until now it was part of spirv_to_nir_options. But it will be used on
>>> the implementation of ARB_gl_spirv and ARB_spirv_extensions, and added
>>> to the OpenGL context, as a way to save what SPIR-V capabilities the
>>> current OpenGL implementation supports.
>>> ---
>>>
>>> We are sending this commit in advance of a v3 of the initial gl_spirv
>>> and spirv_extensions support series. The issue is that lately there
>>> were a lot of activity on the spirv/spir_to_nir code base, and we are
>>> being fixing rebase conflicts constantly. Getting this commit on
>>> master would make things easier.
>>>
>>> FWIW, this patch is similar to one that Ian Romanick already granted
>>> Rb, but that was dropped after all the mentioned changes:
>>> https://lists.freedesktop.org/archives/mesa-dev/2017-November/178261.html
>>>
>>> src/compiler/spirv/nir_spirv.h | 16 +++-------------
>>> src/mesa/main/mtypes.h | 12 ++++++++++++
>>> 2 files changed, 15 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/src/compiler/spirv/nir_spirv.h b/src/compiler/spirv/nir_spirv.h
>>> index 43ec19d5a50..113bd710a00 100644
>>> --- a/src/compiler/spirv/nir_spirv.h
>>> +++ b/src/compiler/spirv/nir_spirv.h
>>> @@ -28,7 +28,8 @@
>>> #ifndef _NIR_SPIRV_H_
>>> #define _NIR_SPIRV_H_
>>>
>>> -#include "nir/nir.h"
>>> +#include "compiler/nir/nir.h"
>>> +#include "main/mtypes.h"
>>>
>>> #ifdef __cplusplus
>>> extern "C" {
>>> @@ -57,18 +58,7 @@ struct spirv_to_nir_options {
>>> */
>>> bool lower_workgroup_access_to_offsets;
>>>
>>> - struct {
>>> - bool float64;
>>> - bool image_ms_array;
>>> - bool tessellation;
>>> - bool draw_parameters;
>>> - bool image_read_without_format;
>>> - bool image_write_without_format;
>>> - bool int64;
>>> - bool multiview;
>>> - bool variable_pointers;
>>> - bool storage_16bit;
>>> - } caps;
>>> + struct nir_spirv_supported_capabilities caps;
>>>
>>> struct {
>>> void (*func)(void *private_data,
>>> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
>>> index b478f6158e2..7da05aa3ee9 100644
>>> --- a/src/mesa/main/mtypes.h
>>> +++ b/src/mesa/main/mtypes.h
>>> @@ -3579,6 +3579,18 @@ struct gl_program_constants
>>> GLuint MaxShaderStorageBlocks;
>>> };
>>>
>>> +struct nir_spirv_supported_capabilities {
>>> + bool float64;
>>> + bool image_ms_array;
>>> + bool tessellation;
>>> + bool draw_parameters;
>>> + bool image_read_without_format;
>>> + bool image_write_without_format;
>>> + bool int64;
>>> + bool multiview;
>>> + bool variable_pointers;
>>> + bool storage_16bit;
>>> +};
>>>
>>> /**
>>> * Constants which may be overridden by device driver during context creation
>>> --
>>> 2.11.0
>>>
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list