mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
i965: Fix encode_slm_size() to take a generation, not a device info.
In the Vulkan driver, we have the generation number (a compile time
constant) but not necessarily the brw_device_info struct. I meant
to rework the function to take a generation number instead of a
brw_device_info pointer to accomodate this. But I forgot, and left
it taking a brw_device_info pointer, while making Vulkan pass the
generation number (8, 9, ...) directly. This led to crashes.
Brown paper bag fix for commit 87d062a940.
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96504
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
667e5cec76
commit
5a0d294d38
2 changed files with 4 additions and 3 deletions
|
|
@ -833,7 +833,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
|
|||
char **error_str);
|
||||
|
||||
static inline uint32_t
|
||||
encode_slm_size(const struct brw_device_info *devinfo, uint32_t bytes)
|
||||
encode_slm_size(unsigned gen, uint32_t bytes)
|
||||
{
|
||||
uint32_t slm_size = 0;
|
||||
|
||||
|
|
@ -852,7 +852,7 @@ encode_slm_size(const struct brw_device_info *devinfo, uint32_t bytes)
|
|||
/* Shared Local Memory Size is specified as powers of two. */
|
||||
slm_size = util_next_power_of_two(bytes);
|
||||
|
||||
if (devinfo->gen >= 9) {
|
||||
if (gen >= 9) {
|
||||
/* Use a minimum of 1kB; turn an exponent of 10 (1024 kB) into 1. */
|
||||
slm_size = ffs(MAX2(slm_size, 1024)) - 10;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -164,7 +164,8 @@ brw_upload_cs_state(struct brw_context *brw)
|
|||
SET_FIELD(cs_prog_data->threads, MEDIA_GPGPU_THREAD_COUNT);
|
||||
assert(cs_prog_data->threads <= brw->max_cs_threads);
|
||||
|
||||
const uint32_t slm_size = encode_slm_size(devinfo, prog_data->total_shared);
|
||||
const uint32_t slm_size =
|
||||
encode_slm_size(devinfo->gen, prog_data->total_shared);
|
||||
|
||||
desc[dw++] =
|
||||
SET_FIELD(cs_prog_data->uses_barrier, MEDIA_BARRIER_ENABLE) |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue