mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
gallium,mesa: replace get_compute_param with pipe_compute_caps
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Acked-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33176>
This commit is contained in:
parent
961a9c3a43
commit
0911b13d70
2 changed files with 11 additions and 39 deletions
|
|
@ -790,19 +790,8 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||
{
|
||||
VkSampleCountFlags sample_counts = VK_SAMPLE_COUNT_1_BIT | VK_SAMPLE_COUNT_4_BIT;
|
||||
|
||||
uint64_t grid_size[3], block_size[3];
|
||||
uint64_t max_threads_per_block, max_local_size;
|
||||
|
||||
device->pscreen->get_compute_param(device->pscreen,
|
||||
PIPE_COMPUTE_CAP_MAX_GRID_SIZE, grid_size);
|
||||
device->pscreen->get_compute_param(device->pscreen,
|
||||
PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE, block_size);
|
||||
device->pscreen->get_compute_param(device->pscreen,
|
||||
PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK,
|
||||
&max_threads_per_block);
|
||||
device->pscreen->get_compute_param(device->pscreen,
|
||||
PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE,
|
||||
&max_local_size);
|
||||
const unsigned *grid_size = device->pscreen->compute_caps.max_grid_size;
|
||||
const unsigned *block_size = device->pscreen->compute_caps.max_block_size;
|
||||
|
||||
const uint64_t max_render_targets = device->pscreen->caps.max_render_targets;
|
||||
|
||||
|
|
@ -869,9 +858,9 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||
.maxFragmentCombinedOutputResources = max_render_targets +
|
||||
device->pscreen->shader_caps[MESA_SHADER_FRAGMENT].max_shader_buffers +
|
||||
device->pscreen->shader_caps[MESA_SHADER_FRAGMENT].max_shader_images,
|
||||
.maxComputeSharedMemorySize = max_local_size,
|
||||
.maxComputeSharedMemorySize = device->pscreen->compute_caps.max_local_size,
|
||||
.maxComputeWorkGroupCount = { grid_size[0], grid_size[1], grid_size[2] },
|
||||
.maxComputeWorkGroupInvocations = max_threads_per_block,
|
||||
.maxComputeWorkGroupInvocations = device->pscreen->compute_caps.max_threads_per_block,
|
||||
.maxComputeWorkGroupSize = { block_size[0], block_size[1], block_size[2] },
|
||||
.subPixelPrecisionBits = device->pscreen->caps.rasterizer_subpixel_bits,
|
||||
.subTexelPrecisionBits = 8,
|
||||
|
|
|
|||
|
|
@ -1647,40 +1647,23 @@ void st_init_extensions(struct pipe_screen *screen,
|
|||
extensions->GREMEDY_string_marker = GL_TRUE;
|
||||
|
||||
if (screen->caps.compute) {
|
||||
uint64_t grid_size[3], block_size[3];
|
||||
uint64_t max_local_size, max_threads_per_block;
|
||||
|
||||
screen->get_compute_param(screen,
|
||||
PIPE_COMPUTE_CAP_MAX_GRID_SIZE, grid_size);
|
||||
screen->get_compute_param(screen,
|
||||
PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE, block_size);
|
||||
screen->get_compute_param(screen,
|
||||
PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK,
|
||||
&max_threads_per_block);
|
||||
screen->get_compute_param(screen,
|
||||
PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE,
|
||||
&max_local_size);
|
||||
|
||||
consts->MaxComputeWorkGroupInvocations = max_threads_per_block;
|
||||
consts->MaxComputeSharedMemorySize = max_local_size;
|
||||
consts->MaxComputeWorkGroupInvocations = screen->compute_caps.max_threads_per_block;
|
||||
consts->MaxComputeSharedMemorySize = screen->compute_caps.max_local_size;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
/* There are tests that fail if we report more that INT_MAX - 1. */
|
||||
consts->MaxComputeWorkGroupCount[i] = MIN2(grid_size[i], INT_MAX - 1);
|
||||
consts->MaxComputeWorkGroupSize[i] = block_size[i];
|
||||
consts->MaxComputeWorkGroupCount[i] = MIN2(screen->compute_caps.max_grid_size[i], INT_MAX - 1);
|
||||
consts->MaxComputeWorkGroupSize[i] = screen->compute_caps.max_block_size[i];
|
||||
}
|
||||
|
||||
extensions->ARB_compute_shader =
|
||||
max_threads_per_block >= 1024 &&
|
||||
screen->compute_caps.max_threads_per_block >= 1024 &&
|
||||
extensions->ARB_shader_image_load_store &&
|
||||
extensions->ARB_shader_atomic_counters;
|
||||
|
||||
if (extensions->ARB_compute_shader) {
|
||||
uint64_t max_variable_threads_per_block = 0;
|
||||
|
||||
screen->get_compute_param(screen,
|
||||
PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK,
|
||||
&max_variable_threads_per_block);
|
||||
unsigned max_variable_threads_per_block =
|
||||
screen->compute_caps.max_variable_threads_per_block;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
/* Clamp the values to avoid having a local work group size
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue