mirror of
https://github.com/Kbz-8/Pulse.git
synced 2026-01-11 15:33:34 +00:00
yes
This commit is contained in:
@@ -53,7 +53,6 @@ static void SoftCommandDispatch(SoftCommand* cmd)
|
|||||||
thrd_t* invocations = (thrd_t*)malloc(invocations_count * sizeof(thrd_t));
|
thrd_t* invocations = (thrd_t*)malloc(invocations_count * sizeof(thrd_t));
|
||||||
PULSE_CHECK_PTR(invocations);
|
PULSE_CHECK_PTR(invocations);
|
||||||
|
|
||||||
printf("test2 %d %d\n", invocations_count, local_size);
|
|
||||||
uint32_t invocation_index = 0;
|
uint32_t invocation_index = 0;
|
||||||
for(uint32_t z = 0; z < cmd->Dispatch.groupcount_z; z++)
|
for(uint32_t z = 0; z < cmd->Dispatch.groupcount_z; z++)
|
||||||
{
|
{
|
||||||
@@ -63,21 +62,15 @@ static void SoftCommandDispatch(SoftCommand* cmd)
|
|||||||
{
|
{
|
||||||
for(uint32_t i = 0; i < local_size; i++)
|
for(uint32_t i = 0; i < local_size; i++)
|
||||||
{
|
{
|
||||||
printf("\r%d", invocation_index);
|
|
||||||
thrd_create(&invocations[invocation_index], SoftCommandDispatchCore, soft_pipeline);
|
thrd_create(&invocations[invocation_index], SoftCommandDispatchCore, soft_pipeline);
|
||||||
|
thrd_join(invocations[invocation_index], NULL);
|
||||||
invocation_index++;
|
invocation_index++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\ntest %d %d %d\n", invocation_index, invocations_count, local_size);
|
|
||||||
for(uint32_t i = 0; i < invocations_count; i++)
|
for(uint32_t i = 0; i < invocations_count; i++)
|
||||||
{
|
thrd_join(invocations[i], PULSE_NULLPTR);
|
||||||
printf("test %d\n", i);
|
|
||||||
int res;
|
|
||||||
thrd_join(invocations[i], &res);
|
|
||||||
PULSE_UNUSED(res);
|
|
||||||
}
|
|
||||||
free(invocations);
|
free(invocations);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,10 @@ PulseComputePipeline SoftCreateComputePipeline(PulseDevice device, const PulseCo
|
|||||||
soft_pipeline->entry_point = calloc(1, strlen(info->entrypoint));
|
soft_pipeline->entry_point = calloc(1, strlen(info->entrypoint));
|
||||||
strcpy((char*)soft_pipeline->entry_point, info->entrypoint);
|
strcpy((char*)soft_pipeline->entry_point, info->entrypoint);
|
||||||
|
|
||||||
|
// Create dummy state to retrieve informations from the spirv
|
||||||
|
spvm_state_t state = spvm_state_create(soft_pipeline->program);
|
||||||
|
spvm_state_delete(state);
|
||||||
|
|
||||||
pipeline->driver_data = soft_pipeline;
|
pipeline->driver_data = soft_pipeline;
|
||||||
|
|
||||||
if(PULSE_IS_BACKEND_HIGH_LEVEL_DEBUG(device->backend))
|
if(PULSE_IS_BACKEND_HIGH_LEVEL_DEBUG(device->backend))
|
||||||
@@ -52,6 +56,7 @@ void SoftDestroyComputePipeline(PulseDevice device, PulseComputePipeline pipelin
|
|||||||
PULSE_UNUSED(device);
|
PULSE_UNUSED(device);
|
||||||
SoftComputePipeline* soft_pipeline = SOFT_RETRIEVE_DRIVER_DATA_AS(pipeline, SoftComputePipeline*);
|
SoftComputePipeline* soft_pipeline = SOFT_RETRIEVE_DRIVER_DATA_AS(pipeline, SoftComputePipeline*);
|
||||||
spvm_program_delete(soft_pipeline->program);
|
spvm_program_delete(soft_pipeline->program);
|
||||||
|
free(soft_pipeline->entry_point);
|
||||||
free(soft_pipeline);
|
free(soft_pipeline);
|
||||||
if(PULSE_IS_BACKEND_HIGH_LEVEL_DEBUG(device->backend))
|
if(PULSE_IS_BACKEND_HIGH_LEVEL_DEBUG(device->backend))
|
||||||
PulseLogInfoFmt(device->backend, "(Soft) destroyed compute pipeline %p", pipeline);
|
PulseLogInfoFmt(device->backend, "(Soft) destroyed compute pipeline %p", pipeline);
|
||||||
|
|||||||
Reference in New Issue
Block a user