zink: set conformant ubo/ssbo size limits
these caps correspond to descriptor binding limits provided by vulkan drivers fixes KHR-GL46.shader_storage_buffer_object.basic-max Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9174>
This commit is contained in:

committed by
Marge Bot

parent
f1f75fda9c
commit
4d0d678c9f
@@ -430,7 +430,10 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||
return 0;
|
||||
|
||||
case PIPE_CAP_MAX_SHADER_BUFFER_SIZE:
|
||||
return 65536;
|
||||
/* 16777216 (1<<24) is required by GL spec, 1<<27 is required by VK spec */
|
||||
assert(screen->info.props.limits.maxStorageBufferRange >= 1 << 27);
|
||||
/* but Gallium can't handle values that are too big, so clamp to VK spec minimum */
|
||||
return 1 << 27;
|
||||
|
||||
case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
|
||||
case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
|
||||
@@ -596,7 +599,10 @@ zink_get_shader_param(struct pipe_screen *pscreen,
|
||||
}
|
||||
|
||||
case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE:
|
||||
return 65536;
|
||||
/* 16384 required by GL spec, this is the minimum required by VK spec */
|
||||
assert(screen->info.props.limits.maxUniformBufferRange >= 16384);
|
||||
/* but Gallium can't handle values that are too big */
|
||||
return MIN2(screen->info.props.limits.maxUniformBufferRange, 1 << 31);
|
||||
|
||||
case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
|
||||
return MIN2(screen->info.props.limits.maxPerStageDescriptorUniformBuffers,
|
||||
|
Reference in New Issue
Block a user