mirror of
https://github.com/italicsjenga/vello.git
synced 2025-01-09 20:31:29 +11:00
Merge pull request #269 from linebender/fix_fail
Partially revert uniform load of bump.failed
This commit is contained in:
commit
872fc5c6de
|
@ -148,15 +148,14 @@ fn main(
|
|||
// Exit early if prior stages failed, as we can't run this stage.
|
||||
// We need to check only prior stages, as if this stage has failed in another workgroup,
|
||||
// we still want to know this workgroup's memory requirement.
|
||||
#ifdef have_uniform
|
||||
if local_id.x == 0u {
|
||||
// Reuse sh_part_count to hold failed flag, shmem is tight
|
||||
sh_part_count[0] = atomicLoad(&bump.failed);
|
||||
}
|
||||
#ifdef have_uniform
|
||||
let failed = workgroupUniformLoad(&sh_part_count[0]);
|
||||
#else
|
||||
workgroupBarrier();
|
||||
let failed = sh_part_count[0];
|
||||
let failed = atomicLoad(&bump.failed);
|
||||
#endif
|
||||
if (failed & (STAGE_BINNING | STAGE_TILE_ALLOC | STAGE_PATH_COARSE)) != 0u {
|
||||
return;
|
||||
|
|
|
@ -29,7 +29,9 @@ let WG_SIZE = 256u;
|
|||
|
||||
var<workgroup> sh_tile_count: array<u32, WG_SIZE>;
|
||||
var<workgroup> sh_tile_offset: u32;
|
||||
#ifdef have_uniform
|
||||
var<workgroup> sh_atomic_failed: u32;
|
||||
#endif
|
||||
|
||||
@compute @workgroup_size(256)
|
||||
fn main(
|
||||
|
@ -39,14 +41,13 @@ fn main(
|
|||
// Exit early if prior stages failed, as we can't run this stage.
|
||||
// We need to check only prior stages, as if this stage has failed in another workgroup,
|
||||
// we still want to know this workgroup's memory requirement.
|
||||
#ifdef have_uniform
|
||||
if local_id.x == 0u {
|
||||
sh_atomic_failed = atomicLoad(&bump.failed);
|
||||
}
|
||||
#ifdef have_uniform
|
||||
let failed = workgroupUniformLoad(&sh_atomic_failed);
|
||||
#else
|
||||
workgroupBarrier();
|
||||
let failed = sh_atomic_failed;
|
||||
let failed = atomicLoad(&bump.failed);
|
||||
#endif
|
||||
if (failed & STAGE_BINNING) != 0u {
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue