Merge pull request #56 from eliasnaur/master

add SPDX license headers
This commit is contained in:
Elias Naur 2020-12-12 01:06:33 +01:00 committed by GitHub
commit 14e922e17e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 32 additions and 133 deletions

View file

@ -8,6 +8,7 @@ use crate::parse::{GpuScalar, GpuType};
pub fn gen_glsl(module: &LayoutModule) -> String {
let mut r = String::new();
writeln!(&mut r, "// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense\n").unwrap();
writeln!(&mut r, "// Code auto-generated by piet-gpu-derive\n").unwrap();
// Note: GLSL needs definitions before uses. We could do a topological sort here,
// but easiest for now to just require that in spec.

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Code auto-generated by piet-gpu-derive
struct AnnoFillRef {

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Propagation of tile backdrop for filling.
//
// Each thread reads one path element and calculates the number of spanned tiles

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// The binning stage of the pipeline.
//
// Each workgroup processes N_TILE paths.

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Code auto-generated by piet-gpu-derive
struct BinInstanceRef {

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// The coarse rasterizer stage of the pipeline.
//
// As input we have the ordered partitions of paths from the binning phase and

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// The element processing stage, first in the pipeline.
//
// This stage is primarily about applying transforms and computing bounding

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// This is "kernel 4" in a 4-kernel pipeline. It renders the commands
// in the per-tile command list to an image.
@ -184,7 +186,7 @@ void main() {
float solid_alpha = begin_solid_clip.alpha;
for (uint k = 0; k < CHUNK; k++) {
blend_stack[blend_slot][k] = packUnorm4x8(vec4(rgb[k], solid_alpha));
}
}
}
blend_sp++;
break;

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Coarse rasterization of path segments.
// Allocation and initialization of tiles for paths.

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Code auto-generated by piet-gpu-derive
struct PathFillLineRef {

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Code auto-generated by piet-gpu-derive
struct CmdCircleRef {

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Code auto-generated by piet-gpu-derive
struct LineSegRef {

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Various constants for the sizes of groups and tiles.
// Much of this will be made dynamic in various ways, but for now it's easiest

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Code auto-generated by piet-gpu-derive
struct StateRef {

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Code auto-generated by piet-gpu-derive
struct PathRef {

View file

@ -1,3 +1,5 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Allocation and initialization of tiles for paths.
#version 450

View file

@ -1,132 +0,0 @@
// Code auto-generated by piet-gpu-derive
struct InstanceRef {
uint offset;
};
struct JumpRef {
uint offset;
};
struct ChunkRef {
uint offset;
};
struct TileGroupRef {
uint offset;
};
struct Instance {
uint item_ref;
vec2 offset;
};
#define Instance_size 12
InstanceRef Instance_index(InstanceRef ref, uint index) {
return InstanceRef(ref.offset + index * Instance_size);
}
struct Jump {
TileGroupRef new_ref;
};
#define Jump_size 4
JumpRef Jump_index(JumpRef ref, uint index) {
return JumpRef(ref.offset + index * Jump_size);
}
struct Chunk {
uint chunk_n;
ChunkRef next;
};
#define Chunk_size 8
ChunkRef Chunk_index(ChunkRef ref, uint index) {
return ChunkRef(ref.offset + index * Chunk_size);
}
#define TileGroup_Instance 0
#define TileGroup_Jump 1
#define TileGroup_End 2
#define TileGroup_size 16
TileGroupRef TileGroup_index(TileGroupRef ref, uint index) {
return TileGroupRef(ref.offset + index * TileGroup_size);
}
Instance Instance_read(InstanceRef ref) {
uint ix = ref.offset >> 2;
uint raw0 = tilegroup[ix + 0];
uint raw1 = tilegroup[ix + 1];
uint raw2 = tilegroup[ix + 2];
Instance s;
s.item_ref = raw0;
s.offset = vec2(uintBitsToFloat(raw1), uintBitsToFloat(raw2));
return s;
}
void Instance_write(InstanceRef ref, Instance s) {
uint ix = ref.offset >> 2;
tilegroup[ix + 0] = s.item_ref;
tilegroup[ix + 1] = floatBitsToUint(s.offset.x);
tilegroup[ix + 2] = floatBitsToUint(s.offset.y);
}
Jump Jump_read(JumpRef ref) {
uint ix = ref.offset >> 2;
uint raw0 = tilegroup[ix + 0];
Jump s;
s.new_ref = TileGroupRef(raw0);
return s;
}
void Jump_write(JumpRef ref, Jump s) {
uint ix = ref.offset >> 2;
tilegroup[ix + 0] = s.new_ref.offset;
}
Chunk Chunk_read(ChunkRef ref) {
uint ix = ref.offset >> 2;
uint raw0 = tilegroup[ix + 0];
uint raw1 = tilegroup[ix + 1];
Chunk s;
s.chunk_n = raw0;
s.next = ChunkRef(raw1);
return s;
}
void Chunk_write(ChunkRef ref, Chunk s) {
uint ix = ref.offset >> 2;
tilegroup[ix + 0] = s.chunk_n;
tilegroup[ix + 1] = s.next.offset;
}
uint TileGroup_tag(TileGroupRef ref) {
return tilegroup[ref.offset >> 2];
}
Instance TileGroup_Instance_read(TileGroupRef ref) {
return Instance_read(InstanceRef(ref.offset + 4));
}
Jump TileGroup_Jump_read(TileGroupRef ref) {
return Jump_read(JumpRef(ref.offset + 4));
}
void TileGroup_Instance_write(TileGroupRef ref, Instance s) {
tilegroup[ref.offset >> 2] = TileGroup_Instance;
Instance_write(InstanceRef(ref.offset + 4), s);
}
void TileGroup_Jump_write(TileGroupRef ref, Jump s) {
tilegroup[ref.offset >> 2] = TileGroup_Jump;
Jump_write(JumpRef(ref.offset + 4), s);
}
void TileGroup_End_write(TileGroupRef ref) {
tilegroup[ref.offset >> 2] = TileGroup_End;
}