radeonsi: Bugfix needed for hashcat
Hashcat needs MAX_GLOBAL_BUFFERS to be 21 or even 22 for some modes. It'll crash otherwise. I'm adding an assert to see if programs need it to be even higher. Signed-off-by: Christian Inci <chris.bugsfd@broke-the-inter.net> [Handle first properly; should be NFC, since clover always uses first == 0.] Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
eca57f85ee
commit
7a4ea95f1c
|
@ -32,7 +32,7 @@
|
||||||
#include "si_pipe.h"
|
#include "si_pipe.h"
|
||||||
#include "sid.h"
|
#include "sid.h"
|
||||||
|
|
||||||
#define MAX_GLOBAL_BUFFERS 20
|
#define MAX_GLOBAL_BUFFERS 22
|
||||||
|
|
||||||
struct si_compute {
|
struct si_compute {
|
||||||
unsigned ir_type;
|
unsigned ir_type;
|
||||||
|
@ -196,17 +196,19 @@ static void si_set_global_binding(
|
||||||
struct si_context *sctx = (struct si_context*)ctx;
|
struct si_context *sctx = (struct si_context*)ctx;
|
||||||
struct si_compute *program = sctx->cs_shader_state.program;
|
struct si_compute *program = sctx->cs_shader_state.program;
|
||||||
|
|
||||||
|
assert(first + n <= MAX_GLOBAL_BUFFERS);
|
||||||
|
|
||||||
if (!resources) {
|
if (!resources) {
|
||||||
for (i = first; i < first + n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
pipe_resource_reference(&program->global_buffers[i], NULL);
|
pipe_resource_reference(&program->global_buffers[first + i], NULL);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = first; i < first + n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
uint64_t va;
|
uint64_t va;
|
||||||
uint32_t offset;
|
uint32_t offset;
|
||||||
pipe_resource_reference(&program->global_buffers[i], resources[i]);
|
pipe_resource_reference(&program->global_buffers[first + i], resources[i]);
|
||||||
va = r600_resource(resources[i])->gpu_address;
|
va = r600_resource(resources[i])->gpu_address;
|
||||||
offset = util_le32_to_cpu(*handles[i]);
|
offset = util_le32_to_cpu(*handles[i]);
|
||||||
va += offset;
|
va += offset;
|
||||||
|
|
Loading…
Reference in New Issue