7#ifndef PXR_IMAGING_HGI_CAPABILITIES_H
8#define PXR_IMAGING_HGI_CAPABILITIES_H
11#include "pxr/imaging/hgi/api.h"
12#include "pxr/imaging/hgi/enums.h"
16PXR_NAMESPACE_OPEN_SCOPE
28 bool IsSet(HgiDeviceCapabilities mask)
const {
29 return (_flags & mask) != 0;
33 virtual int GetAPIVersion()
const = 0;
36 virtual int GetShaderVersion()
const = 0;
39 size_t GetMaxUniformBlockSize()
const {
40 return _maxUniformBlockSize;
44 size_t GetMaxShaderStorageBlockSize()
const {
45 return _maxShaderStorageBlockSize;
49 size_t GetUniformBufferOffsetAlignment()
const {
50 return _uniformBufferOffsetAlignment;
54 size_t GetMaxClipDistances()
const {
55 return _maxClipDistances;
59 size_t GetPageSizeAlignment()
const {
60 return _pageSizeAlignment;
65 : _maxUniformBlockSize(0)
66 , _maxShaderStorageBlockSize(0)
67 , _uniformBufferOffsetAlignment(0)
68 , _maxClipDistances(0)
69 , _pageSizeAlignment(1)
73 void _SetFlag(HgiDeviceCapabilities mask,
bool value) {
81 size_t _maxUniformBlockSize;
82 size_t _maxShaderStorageBlockSize;
83 size_t _uniformBufferOffsetAlignment;
84 size_t _maxClipDistances;
85 size_t _pageSizeAlignment;
91 HgiDeviceCapabilities _flags;
94PXR_NAMESPACE_CLOSE_SCOPE
Reports the capabilities of the Hgi device.