Compare commits
54
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
807f4ccbeb
|
||
|
|
f1dd3a085b
|
||
|
|
b37c1d8993
|
||
|
|
6a7f124deb
|
||
|
|
a9a32284b6
|
||
|
|
255a1bbf74
|
||
|
|
96cdf4cc07
|
||
|
|
35a55854fd
|
||
|
|
2f057cc72f
|
||
|
|
3356ca3e46
|
||
|
|
ccef0a086a
|
||
|
|
edb694fb41
|
||
|
|
90535adc89
|
||
|
|
6fed6d67bd
|
||
|
|
dcaf67b3d7
|
||
|
|
c7de3d45e3
|
||
|
|
d9bddff160
|
||
|
|
5c6dcce543
|
||
|
|
905a69d2a0
|
||
|
|
e453bc67d0
|
||
|
|
0fa145a1a0
|
||
|
|
b5a65d1255
|
||
|
|
ccdc0fa37e
|
||
|
|
b97518552d
|
||
|
|
67d14dc12c
|
||
|
|
695b1b4845
|
||
|
|
2e5d954f49
|
||
|
|
e6af0c405a
|
||
|
|
599a761b27
|
||
|
|
b7aa91f08f
|
||
|
|
280a736ce3
|
||
|
|
4e41b9bc99
|
||
|
|
153c980a61
|
||
|
|
a2f97f7e0f
|
||
|
|
5e1b4bb0b8
|
||
|
|
e73f9e0626
|
||
|
|
ddd90b780b
|
||
|
|
89c32f5614
|
||
|
|
1567a3e582
|
||
|
|
aa9952cd9e
|
||
|
|
99efc551ad
|
||
|
|
4dbfee0698
|
||
|
|
4e65e41101
|
||
|
|
b8306fe9e2
|
||
|
|
6b246e9036
|
||
|
|
869820ec6d
|
||
|
|
6fb2065a51
|
||
|
|
698fd2d66a
|
||
|
|
4cfbc93aa0
|
||
|
|
feec4b0d22
|
||
|
|
6487b41d92
|
||
|
|
7908fb9583
|
||
|
|
95aa7c205c
|
||
|
|
bd0cc3656f
|
@@ -11,7 +11,7 @@
|
|||||||
<a href="https://git.gensokyo.uk/rosa/hakurei/actions"><img src="https://git.gensokyo.uk/rosa/hakurei/actions/workflows/test.yml/badge.svg?branch=staging&style=flat-square" alt="Gitea Workflow Status" /></a>
|
<a href="https://git.gensokyo.uk/rosa/hakurei/actions"><img src="https://git.gensokyo.uk/rosa/hakurei/actions/workflows/test.yml/badge.svg?branch=staging&style=flat-square" alt="Gitea Workflow Status" /></a>
|
||||||
<br/>
|
<br/>
|
||||||
<a href="https://git.gensokyo.uk/rosa/hakurei/releases"><img src="https://img.shields.io/gitea/v/release/rosa/hakurei?gitea_url=https%3A%2F%2Fgit.gensokyo.uk&color=purple" alt="Release" /></a>
|
<a href="https://git.gensokyo.uk/rosa/hakurei/releases"><img src="https://img.shields.io/gitea/v/release/rosa/hakurei?gitea_url=https%3A%2F%2Fgit.gensokyo.uk&color=purple" alt="Release" /></a>
|
||||||
<a href="https://goreportcard.com/report/hakurei.app"><img src="https://goreportcard.com/badge/hakurei.app" alt="Go Report Card" /></a>
|
<a href="https://git.gensokyo.uk/rosa/hakurei/src/branch/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-pink" alt="MIT License" /></a>
|
||||||
<a href="https://hakurei.app"><img src="https://img.shields.io/website?url=https%3A%2F%2Fhakurei.app" alt="Website" /></a>
|
<a href="https://hakurei.app"><img src="https://img.shields.io/website?url=https%3A%2F%2Fhakurei.app" alt="Website" /></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
@@ -19,10 +19,9 @@ func TestHelp(t *testing.T) {
|
|||||||
want string
|
want string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
"main", []string{}, `
|
"main", []string{}, `usage: hakurei [-h | --help] [-v] [--insecure] [--json] <command> [<args>]
|
||||||
Usage: hakurei [-h | --help] [-v] [--insecure] [--json] COMMAND [OPTIONS]
|
|
||||||
|
|
||||||
Commands:
|
commands:
|
||||||
run Load and start container from configuration file
|
run Load and start container from configuration file
|
||||||
exec Configure and start a permissive container
|
exec Configure and start a permissive container
|
||||||
show Show live or local instance configuration
|
show Show live or local instance configuration
|
||||||
@@ -35,10 +34,14 @@ Commands:
|
|||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"exec", []string{"exec", "-h"}, `
|
"exec", []string{"exec", "-h"}, `usage: hakurei exec [-h | --help] [--dbus-config <value>]
|
||||||
Usage: hakurei exec [-h | --help] [--dbus-config <value>] [--dbus-system <value>] [--mpris] [--dbus-log] [--id <value>] [-a <int>] [-g <value>] [-d <value>] [-u <value>] [--policy <value>] [--priority <int>] [--private-runtime] [--private-tmpdir] [--wayland] [-X] [--dbus] [--pipewire] [--pulse] COMMAND [OPTIONS]
|
[--dbus-system <value>] [--mpris] [--dbus-log]
|
||||||
|
[--id <value>] [-a <int>] [-g <value>] [-d <value>]
|
||||||
|
[-u <value>] [--policy <value>] [--priority <int>]
|
||||||
|
[--private-runtime] [--private-tmpdir] [--wayland] [-X]
|
||||||
|
[--dbus] [--pipewire] [--pulse] <command> [<args>]
|
||||||
|
|
||||||
Flags:
|
flags:
|
||||||
-X Enable direct connection to X11
|
-X Enable direct connection to X11
|
||||||
-a int
|
-a int
|
||||||
Application identity
|
Application identity
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"hakurei.app/check"
|
"hakurei.app/check"
|
||||||
@@ -28,6 +29,8 @@ type cache struct {
|
|||||||
idle bool
|
idle bool
|
||||||
// Unset [pkg.CSuppressInit].
|
// Unset [pkg.CSuppressInit].
|
||||||
verboseInit bool
|
verboseInit bool
|
||||||
|
// Whether to enable output colours.
|
||||||
|
color bool
|
||||||
// Unset [pkg.CExternShallow].
|
// Unset [pkg.CExternShallow].
|
||||||
deep bool
|
deep bool
|
||||||
// Loaded artifact of [rosa.QEMU].
|
// Loaded artifact of [rosa.QEMU].
|
||||||
@@ -36,18 +39,32 @@ type cache struct {
|
|||||||
base, mirror string
|
base, mirror string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// writeTitle sets title of the terminal connected to [message.Msg].
|
||||||
|
func writeTitle(msg message.Msg, s string) {
|
||||||
|
msg.Suspend()
|
||||||
|
w := msg.GetLogger().Writer()
|
||||||
|
_, _ = w.Write([]byte("\x1b]0;" + s + "\a"))
|
||||||
|
msg.Resume()
|
||||||
|
}
|
||||||
|
|
||||||
// open opens the underlying [pkg.Cache].
|
// open opens the underlying [pkg.Cache].
|
||||||
func (cache *cache) open() (err error) {
|
func (cache *cache) open() (err error) {
|
||||||
if cache.c != nil {
|
if cache.c != nil {
|
||||||
return os.ErrInvalid
|
return os.ErrInvalid
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var hostname string
|
||||||
|
if hostname, err = os.Hostname(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var base *check.Absolute
|
var base *check.Absolute
|
||||||
if cache.base, err = filepath.Abs(cache.base); err != nil {
|
if cache.base, err = filepath.Abs(cache.base); err != nil {
|
||||||
return
|
return
|
||||||
} else if base, err = check.NewAbs(cache.base); err != nil {
|
} else if base, err = check.NewAbs(cache.base); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
var notify chan bool
|
||||||
|
|
||||||
if cache.idle {
|
if cache.idle {
|
||||||
cache.attr.Flags |= pkg.CSchedIdle
|
cache.attr.Flags |= pkg.CSchedIdle
|
||||||
@@ -61,6 +78,11 @@ func (cache *cache) open() (err error) {
|
|||||||
if !cache.deep {
|
if !cache.deep {
|
||||||
cache.attr.Flags |= pkg.CExternShallow
|
cache.attr.Flags |= pkg.CExternShallow
|
||||||
}
|
}
|
||||||
|
if cache.color {
|
||||||
|
cache.attr.Flags |= pkg.CColourOutput
|
||||||
|
notify = make(chan bool, 1<<12)
|
||||||
|
cache.attr.Notify = notify
|
||||||
|
}
|
||||||
|
|
||||||
done := make(chan struct{})
|
done := make(chan struct{})
|
||||||
defer close(done)
|
defer close(done)
|
||||||
@@ -104,6 +126,29 @@ func (cache *cache) open() (err error) {
|
|||||||
cache.c.SetExternal(r)
|
cache.c.SetExternal(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if cache.attr.Notify != nil {
|
||||||
|
cache.msg.Suspend()
|
||||||
|
_, _ = cache.msg.GetLogger().Writer().Write([]byte("\x1b[22;0t"))
|
||||||
|
cache.msg.Resume()
|
||||||
|
|
||||||
|
prefix := hostname + ": mbf "
|
||||||
|
go func() {
|
||||||
|
var n, nc uint64
|
||||||
|
for enter := range notify {
|
||||||
|
if enter {
|
||||||
|
n++
|
||||||
|
nc++
|
||||||
|
} else {
|
||||||
|
nc--
|
||||||
|
}
|
||||||
|
|
||||||
|
writeTitle(cache.msg, prefix+
|
||||||
|
"("+strconv.FormatUint(nc, 10)+
|
||||||
|
" of "+strconv.FormatUint(n, 10)+")")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
if cache.qemu != nil {
|
if cache.qemu != nil {
|
||||||
var pathname *check.Absolute
|
var pathname *check.Absolute
|
||||||
pathname, _, err = cache.c.Cure(cache.qemu)
|
pathname, _, err = cache.c.Cure(cache.qemu)
|
||||||
@@ -124,6 +169,11 @@ func (cache *cache) open() (err error) {
|
|||||||
func (cache *cache) Close() {
|
func (cache *cache) Close() {
|
||||||
if cache.c != nil {
|
if cache.c != nil {
|
||||||
cache.c.Close()
|
cache.c.Close()
|
||||||
|
if cache.attr.Notify != nil {
|
||||||
|
cache.msg.Suspend()
|
||||||
|
_, _ = cache.msg.GetLogger().Writer().Write([]byte("\x1b[23;0t"))
|
||||||
|
cache.msg.Resume()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+41
-7
@@ -92,6 +92,11 @@ func main() {
|
|||||||
|
|
||||||
var cm cache
|
var cm cache
|
||||||
defer func() { cm.Close() }()
|
defer func() { cm.Close() }()
|
||||||
|
if cm.color = ext.Isatty(syscall.Stderr) &&
|
||||||
|
os.Getenv("NO_COLOR") == "" &&
|
||||||
|
os.Getenv("TERM") != "dumb"; cm.color {
|
||||||
|
log.SetPrefix("\x1b[2mmbf: \x1b[0m")
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
flagQuiet bool
|
flagQuiet bool
|
||||||
@@ -278,7 +283,7 @@ func main() {
|
|||||||
if _, err := io.Copy(h, os.Stdin); err != nil {
|
if _, err := io.Copy(h, os.Stdin); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println(pkg.Encode(pkg.Checksum(h.Sum(nil))))
|
fmt.Println(pkg.Encode(pkg.Checksum(h.Sum(nil))))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -616,7 +621,7 @@ func main() {
|
|||||||
|
|
||||||
{
|
{
|
||||||
c.NewCommand(
|
c.NewCommand(
|
||||||
"stage3",
|
"stage4",
|
||||||
"Check for toolchain 3-stage non-determinism",
|
"Check for toolchain 3-stage non-determinism",
|
||||||
func(args []string) (err error) {
|
func(args []string) (err error) {
|
||||||
var (
|
var (
|
||||||
@@ -636,21 +641,31 @@ func main() {
|
|||||||
|
|
||||||
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||||
_, llvm := rosa.Native().New(rosa.Std - 1).Load(_llvm)
|
_, llvm := rosa.Native().New(rosa.Std - 1).Load(_llvm)
|
||||||
pathname, checksum[0], err = cache.Cure(llvm)
|
pathname, _, err = cache.Cure(llvm)
|
||||||
return
|
return
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Println("stage2:", pathname)
|
log.Println("stage2:", pathname)
|
||||||
|
|
||||||
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||||
_, llvm := rosa.Native().New(rosa.Std).Load(_llvm)
|
_, llvm := rosa.Native().New(rosa.Std).Load(_llvm)
|
||||||
pathname, checksum[1], err = cache.Cure(llvm)
|
pathname, checksum[0], err = cache.Cure(llvm)
|
||||||
return
|
return
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Println("stage3:", pathname)
|
log.Println("stage3:", pathname)
|
||||||
|
|
||||||
|
if err = cm.Do(func(cache *pkg.Cache) (err error) {
|
||||||
|
_, llvm := rosa.Native().New(rosa.Stage3).Load(_llvm)
|
||||||
|
pathname, checksum[1], err = cache.Cure(llvm)
|
||||||
|
return
|
||||||
|
}); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Println("stage4:", pathname)
|
||||||
|
|
||||||
if checksum[0] != checksum[1] {
|
if checksum[0] != checksum[1] {
|
||||||
err = &pkg.ChecksumMismatchError{
|
err = &pkg.ChecksumMismatchError{
|
||||||
Got: checksum[0].Value(),
|
Got: checksum[0].Value(),
|
||||||
@@ -658,7 +673,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Println(
|
log.Println(
|
||||||
"stage2 is identical to stage3",
|
"stage3 is identical to stage4",
|
||||||
"("+pkg.Encode(checksum[0].Value())+")",
|
"("+pkg.Encode(checksum[0].Value())+")",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -667,6 +682,25 @@ func main() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.NewCommand(
|
||||||
|
"all",
|
||||||
|
command.UsageInternal,
|
||||||
|
func([]string) error {
|
||||||
|
all := rosa.Native().CollectAll()
|
||||||
|
a := make(pkg.Collect, len(all))
|
||||||
|
for i, h := range all {
|
||||||
|
_, a[i] = rosa.Native().Std().Load(h)
|
||||||
|
}
|
||||||
|
return cm.Do(func(cache *pkg.Cache) (err error) {
|
||||||
|
_, _, err = cache.Cure(&a)
|
||||||
|
if pkg.IsCollected(err) {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
|
return
|
||||||
|
})
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
{
|
{
|
||||||
var (
|
var (
|
||||||
flagDump string
|
flagDump string
|
||||||
@@ -730,7 +764,7 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Println(pathname)
|
fmt.Println(pathname)
|
||||||
|
|
||||||
if flagExport != "" {
|
if flagExport != "" {
|
||||||
msg.Verbosef("exporting %s to %s...", args[0], flagExport)
|
msg.Verbosef("exporting %s to %s...", args[0], flagExport)
|
||||||
@@ -791,7 +825,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
pathname, err := cureRemote(ctx, &addr, a, flags)
|
pathname, err := cureRemote(ctx, &addr, a, flags)
|
||||||
if !flagNoReply && err == nil {
|
if !flagNoReply && err == nil {
|
||||||
log.Println(pathname)
|
fmt.Println(pathname)
|
||||||
}
|
}
|
||||||
|
|
||||||
if errors.Is(err, context.Canceled) {
|
if errors.Is(err, context.Canceled) {
|
||||||
|
|||||||
+3
-2
@@ -13,6 +13,7 @@ func New(output io.Writer, logf LogFunc, name string, early HandlerFunc) Command
|
|||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// newNode initialises a subcommand tree and returns its address.
|
||||||
func newNode(output io.Writer, logf LogFunc, name, usage string) *node {
|
func newNode(output io.Writer, logf LogFunc, name, usage string) *node {
|
||||||
n := &node{
|
n := &node{
|
||||||
name: name, usage: usage,
|
name: name, usage: usage,
|
||||||
@@ -22,8 +23,8 @@ func newNode(output io.Writer, logf LogFunc, name, usage string) *node {
|
|||||||
n.set.SetOutput(output)
|
n.set.SetOutput(output)
|
||||||
n.set.Usage = func() {
|
n.set.Usage = func() {
|
||||||
_ = n.writeHelp()
|
_ = n.writeHelp()
|
||||||
if n.suffix.Len() > 0 {
|
if len(n.suffix) > 0 {
|
||||||
_, _ = fmt.Fprintln(output, "Flags:")
|
_, _ = fmt.Fprintln(output, "flags:")
|
||||||
n.set.PrintDefaults()
|
n.set.PrintDefaults()
|
||||||
_, _ = fmt.Fprintln(output)
|
_, _ = fmt.Fprintln(output)
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-4
@@ -18,8 +18,14 @@ func TestBuild(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("direct zero length", func(t *testing.T) {
|
t.Run("direct zero length", func(t *testing.T) {
|
||||||
wantPanic := "invalid subcommand"
|
wantPanic := "invalid subcommand"
|
||||||
t.Run("zero length name", func(t *testing.T) { defer checkRecover(t, "Command", wantPanic); c.Command("", "usage", stubHandler) })
|
t.Run("zero length name", func(t *testing.T) {
|
||||||
t.Run("zero length usage", func(t *testing.T) { defer checkRecover(t, "Command", wantPanic); c.Command("name", "", stubHandler) })
|
defer checkRecover(t, "Command", wantPanic)
|
||||||
|
c.Command("", "usage", stubHandler)
|
||||||
|
})
|
||||||
|
t.Run("zero length usage", func(t *testing.T) {
|
||||||
|
defer checkRecover(t, "Command", wantPanic)
|
||||||
|
c.Command("name", "", stubHandler)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("direct adopt unique names", func(t *testing.T) {
|
t.Run("direct adopt unique names", func(t *testing.T) {
|
||||||
@@ -34,8 +40,14 @@ func TestBuild(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("zero length", func(t *testing.T) {
|
t.Run("zero length", func(t *testing.T) {
|
||||||
wantPanic := "invalid subcommand tree"
|
wantPanic := "invalid subcommand tree"
|
||||||
t.Run("zero length name", func(t *testing.T) { defer checkRecover(t, "New", wantPanic); c.New("", "usage") })
|
t.Run("zero length name", func(t *testing.T) {
|
||||||
t.Run("zero length usage", func(t *testing.T) { defer checkRecover(t, "New", wantPanic); c.New("name", "") })
|
defer checkRecover(t, "New", wantPanic)
|
||||||
|
c.New("", "usage")
|
||||||
|
})
|
||||||
|
t.Run("zero length usage", func(t *testing.T) {
|
||||||
|
defer checkRecover(t, "New", wantPanic)
|
||||||
|
c.New("name", "")
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("direct adopt unique names", func(t *testing.T) {
|
t.Run("direct adopt unique names", func(t *testing.T) {
|
||||||
|
|||||||
+26
-6
@@ -6,36 +6,43 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UsageInternal causes the command to be hidden from help text when set as the usage string.
|
// UsageInternal is a special usage string that hides the command from the
|
||||||
const UsageInternal = "internal"
|
// generated help message.
|
||||||
|
const UsageInternal = "\x00"
|
||||||
|
|
||||||
type (
|
type (
|
||||||
// HandlerFunc is called when matching a directly handled subcommand tree.
|
// HandlerFunc is called when matching a directly handled subcommand tree.
|
||||||
HandlerFunc = func(args []string) error
|
HandlerFunc = func(args []string) error
|
||||||
|
|
||||||
// LogFunc is the function signature of a printf function.
|
// LogFunc is the function signature of a printf function. The zero value
|
||||||
|
// implies [log.Printf].
|
||||||
LogFunc = func(format string, a ...any)
|
LogFunc = func(format string, a ...any)
|
||||||
|
|
||||||
// FlagDefiner is a deferred flag definer value, usually encapsulating the default value.
|
// FlagDefiner is a deferred flag definer value, usually encapsulating the
|
||||||
|
// default value.
|
||||||
FlagDefiner interface {
|
FlagDefiner interface {
|
||||||
// Define defines the flag in set.
|
// Define defines the flag in set.
|
||||||
Define(b *strings.Builder, set *flag.FlagSet, p any, name, usage string)
|
Define(b *strings.Builder, set *flag.FlagSet, p any, name, usage string)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A Flag is satisfied by command objects capable of receiving flags.
|
||||||
Flag[T any] interface {
|
Flag[T any] interface {
|
||||||
// Flag defines a generic flag type in Node's flag set.
|
// Flag defines a generic flag type in Node's flag set.
|
||||||
Flag(p any, name string, value FlagDefiner, usage string) T
|
Flag(p any, name string, value FlagDefiner, usage string) T
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A Command is the root of a command tree.
|
||||||
Command interface {
|
Command interface {
|
||||||
Parse(arguments []string) error
|
Parse(arguments []string) error
|
||||||
|
|
||||||
// MustParse determines exit outcomes for Parse errors
|
// MustParse determines exit outcomes for Parse errors and calls
|
||||||
// and calls handleError if [HandlerFunc] returns a non-nil error.
|
// handleError if [HandlerFunc] returns a non-nil error.
|
||||||
MustParse(arguments []string, handleError func(error))
|
MustParse(arguments []string, handleError func(error))
|
||||||
|
|
||||||
baseNode[Command]
|
baseNode[Command]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A Node is a subcommand under a [Command].
|
||||||
Node baseNode[Node]
|
Node baseNode[Node]
|
||||||
|
|
||||||
baseNode[T any] interface {
|
baseNode[T any] interface {
|
||||||
@@ -53,3 +60,16 @@ type (
|
|||||||
Flag[T]
|
Flag[T]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// rootNode satisfies baseNode for [Command].
|
||||||
|
type rootNode struct{ *node }
|
||||||
|
|
||||||
|
func (r rootNode) Command(name, usage string, f HandlerFunc) Command {
|
||||||
|
r.node.Command(name, usage, f)
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r rootNode) Flag(p any, name string, value FlagDefiner, usage string) Command {
|
||||||
|
r.node.Flag(p, name, value, usage)
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|||||||
+7
-1
@@ -16,7 +16,13 @@ func (e FlagError) Is(target error) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) Flag(p any, name string, value FlagDefiner, usage string) Node {
|
func (n *node) Flag(p any, name string, value FlagDefiner, usage string) Node {
|
||||||
value.Define(&n.suffix, n.set, p, name, usage)
|
var buf strings.Builder
|
||||||
|
value.Define(&buf, n.set, p, name, usage)
|
||||||
|
s := buf.String()
|
||||||
|
if len(s) > 0 && s[0] == ' ' {
|
||||||
|
s = s[1:]
|
||||||
|
}
|
||||||
|
n.suffix = append(n.suffix, s)
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+21
-3
@@ -1,6 +1,7 @@
|
|||||||
package command
|
package command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
@@ -13,14 +14,31 @@ var ErrHelp = errors.New("help requested")
|
|||||||
func (n *node) PrintHelp() { _ = n.writeHelp() }
|
func (n *node) PrintHelp() { _ = n.writeHelp() }
|
||||||
|
|
||||||
func (n *node) writeHelp() error {
|
func (n *node) writeHelp() error {
|
||||||
|
prefix := strings.Join(append(n.prefix, n.name), " ")
|
||||||
|
var buf strings.Builder
|
||||||
|
offset := 7 + len(prefix)
|
||||||
|
line := offset + 14
|
||||||
|
w := bytes.Repeat([]byte{' '}, offset+1)
|
||||||
|
w[0] = '\n'
|
||||||
|
|
||||||
|
for _, flag := range n.suffix {
|
||||||
|
line += len(flag) + 1
|
||||||
|
if line >= 80 {
|
||||||
|
line = offset + len(flag) + 1
|
||||||
|
buf.Write(w)
|
||||||
|
}
|
||||||
|
buf.WriteByte(' ')
|
||||||
|
buf.WriteString(flag)
|
||||||
|
}
|
||||||
|
|
||||||
if _, err := fmt.Fprintf(n.out,
|
if _, err := fmt.Fprintf(n.out,
|
||||||
"\nUsage:\t%s [-h | --help]%s COMMAND [OPTIONS]\n",
|
"usage: %s [-h | --help]%s <command> [<args>]\n",
|
||||||
strings.Join(append(n.prefix, n.name), " "), &n.suffix,
|
prefix, &buf,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if n.child != nil {
|
if n.child != nil {
|
||||||
if _, err := fmt.Fprint(n.out, "\nCommands:\n"); err != nil {
|
if _, err := fmt.Fprint(n.out, "\ncommands:\n"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-2
@@ -3,9 +3,9 @@ package command
|
|||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"io"
|
"io"
|
||||||
"strings"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// A node represents a command.
|
||||||
type node struct {
|
type node struct {
|
||||||
child, next *node
|
child, next *node
|
||||||
name, usage string
|
name, usage string
|
||||||
@@ -13,13 +13,16 @@ type node struct {
|
|||||||
out io.Writer
|
out io.Writer
|
||||||
logf LogFunc
|
logf LogFunc
|
||||||
|
|
||||||
|
// Names of commands preceding node.
|
||||||
prefix []string
|
prefix []string
|
||||||
suffix strings.Builder
|
// Short user-facing representations of flags received by node.
|
||||||
|
suffix []string
|
||||||
|
|
||||||
f HandlerFunc
|
f HandlerFunc
|
||||||
set *flag.FlagSet
|
set *flag.FlagSet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// adopt adds v as the last child of n.
|
||||||
func (n *node) adopt(v *node) bool {
|
func (n *node) adopt(v *node) bool {
|
||||||
if n.child != nil {
|
if n.child != nil {
|
||||||
return n.child.append(v)
|
return n.child.append(v)
|
||||||
@@ -28,6 +31,7 @@ func (n *node) adopt(v *node) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// append adds v as the last sibling of n.
|
||||||
func (n *node) append(v *node) bool {
|
func (n *node) append(v *node) bool {
|
||||||
if n.name == v.name {
|
if n.name == v.name {
|
||||||
return false
|
return false
|
||||||
|
|||||||
+18
-22
@@ -70,7 +70,7 @@ func TestParse(t *testing.T) {
|
|||||||
"d=0 out of order string flag",
|
"d=0 out of order string flag",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{"string", "--string", "64d3b4b7b21788585845060e2199a78f"},
|
[]string{"string", "--string", "64d3b4b7b21788585845060e2199a78f"},
|
||||||
"flag provided but not defined: -string\n\nUsage:\ttest string [-h | --help] COMMAND [OPTIONS]\n\n", "",
|
"flag provided but not defined: -string\nusage: test string [-h | --help] <command> [<args>]\n\n", "",
|
||||||
errors.New("flag provided but not defined: -string"),
|
errors.New("flag provided but not defined: -string"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -120,7 +120,7 @@ func TestParse(t *testing.T) {
|
|||||||
"d=1 empty sub help",
|
"d=1 empty sub help",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{"empty", "-h"},
|
[]string{"empty", "-h"},
|
||||||
"\nUsage:\ttest empty [-h | --help] COMMAND [OPTIONS]\n\n", "", flag.ErrHelp,
|
"usage: test empty [-h | --help] <command> [<args>]\n\n", "", flag.ErrHelp,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"d=1 no match",
|
"d=1 no match",
|
||||||
@@ -151,10 +151,10 @@ func TestParse(t *testing.T) {
|
|||||||
"d=0 help",
|
"d=0 help",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{},
|
[]string{},
|
||||||
`
|
`usage: test [-h | --help] [-v] [--fail] [--string <value>] [--int <int>]
|
||||||
Usage: test [-h | --help] [-v] [--fail] [--string <value>] [--int <int>] [--repeat <value>] COMMAND [OPTIONS]
|
[--repeat <value>] <command> [<args>]
|
||||||
|
|
||||||
Commands:
|
commands:
|
||||||
error return an error
|
error return an error
|
||||||
print wraps Fprint
|
print wraps Fprint
|
||||||
string print string passed by flag
|
string print string passed by flag
|
||||||
@@ -171,10 +171,10 @@ Commands:
|
|||||||
"d=0 help flag",
|
"d=0 help flag",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{"-h"},
|
[]string{"-h"},
|
||||||
`
|
`usage: test [-h | --help] [-v] [--fail] [--string <value>] [--int <int>]
|
||||||
Usage: test [-h | --help] [-v] [--fail] [--string <value>] [--int <int>] [--repeat <value>] COMMAND [OPTIONS]
|
[--repeat <value>] <command> [<args>]
|
||||||
|
|
||||||
Commands:
|
commands:
|
||||||
error return an error
|
error return an error
|
||||||
print wraps Fprint
|
print wraps Fprint
|
||||||
string print string passed by flag
|
string print string passed by flag
|
||||||
@@ -185,7 +185,7 @@ Commands:
|
|||||||
succeed this command succeeds
|
succeed this command succeeds
|
||||||
deep top level of command tree with various levels
|
deep top level of command tree with various levels
|
||||||
|
|
||||||
Flags:
|
flags:
|
||||||
-fail
|
-fail
|
||||||
fail early
|
fail early
|
||||||
-int int
|
-int int
|
||||||
@@ -203,10 +203,9 @@ Flags:
|
|||||||
"d=1 help",
|
"d=1 help",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{"join"},
|
[]string{"join"},
|
||||||
`
|
`usage: test join [-h | --help] <command> [<args>]
|
||||||
Usage: test join [-h | --help] COMMAND [OPTIONS]
|
|
||||||
|
|
||||||
Commands:
|
commands:
|
||||||
out write result to wout
|
out write result to wout
|
||||||
log log result to wlog
|
log log result to wlog
|
||||||
|
|
||||||
@@ -216,10 +215,9 @@ Commands:
|
|||||||
"d=1 help flag",
|
"d=1 help flag",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{"join", "-h"},
|
[]string{"join", "-h"},
|
||||||
`
|
`usage: test join [-h | --help] <command> [<args>]
|
||||||
Usage: test join [-h | --help] COMMAND [OPTIONS]
|
|
||||||
|
|
||||||
Commands:
|
commands:
|
||||||
out write result to wout
|
out write result to wout
|
||||||
log log result to wlog
|
log log result to wlog
|
||||||
|
|
||||||
@@ -230,10 +228,9 @@ Commands:
|
|||||||
"d=2 help",
|
"d=2 help",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{"deep", "d=2"},
|
[]string{"deep", "d=2"},
|
||||||
`
|
`usage: test deep d=2 [-h | --help] <command> [<args>]
|
||||||
Usage: test deep d=2 [-h | --help] COMMAND [OPTIONS]
|
|
||||||
|
|
||||||
Commands:
|
commands:
|
||||||
d=3 relative third level
|
d=3 relative third level
|
||||||
|
|
||||||
`, "", command.ErrHelp,
|
`, "", command.ErrHelp,
|
||||||
@@ -242,10 +239,9 @@ Commands:
|
|||||||
"d=2 help flag",
|
"d=2 help flag",
|
||||||
buildTestCommand,
|
buildTestCommand,
|
||||||
[]string{"deep", "d=2", "-h"},
|
[]string{"deep", "d=2", "-h"},
|
||||||
`
|
`usage: test deep d=2 [-h | --help] <command> [<args>]
|
||||||
Usage: test deep d=2 [-h | --help] COMMAND [OPTIONS]
|
|
||||||
|
|
||||||
Commands:
|
commands:
|
||||||
d=3 relative third level
|
d=3 relative third level
|
||||||
|
|
||||||
`, "", flag.ErrHelp,
|
`, "", flag.ErrHelp,
|
||||||
@@ -261,7 +257,7 @@ Commands:
|
|||||||
t.Errorf("Parse: error = %v; wantErr %v", err, tc.wantErr)
|
t.Errorf("Parse: error = %v; wantErr %v", err, tc.wantErr)
|
||||||
}
|
}
|
||||||
if got := wout.String(); got != tc.want {
|
if got := wout.String(); got != tc.want {
|
||||||
t.Errorf("Parse: %s want %s", got, tc.want)
|
t.Errorf("Parse:\n%s\nwant\n%s", got, tc.want)
|
||||||
}
|
}
|
||||||
if gotLog := wlog.String(); gotLog != tc.wantLog {
|
if gotLog := wlog.String(); gotLog != tc.wantLog {
|
||||||
t.Errorf("Parse: log = %s wantLog %s", gotLog, tc.wantLog)
|
t.Errorf("Parse: log = %s wantLog %s", gotLog, tc.wantLog)
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
package command
|
|
||||||
|
|
||||||
// the top level node wants [Command] returned for its builder methods
|
|
||||||
type rootNode struct{ *node }
|
|
||||||
|
|
||||||
func (r rootNode) Command(name, usage string, f HandlerFunc) Command {
|
|
||||||
r.node.Command(name, usage, f)
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r rootNode) Flag(p any, name string, value FlagDefiner, usage string) Command {
|
|
||||||
r.node.Flag(p, name, value, usage)
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
+12
-3
@@ -73,7 +73,10 @@ func (c *Cache) Clean(dry, inputs bool, keep ...Artifact) (
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
c.msg.Verbosef("arranging for destruction of %s...", name)
|
c.msg.Verbosef(
|
||||||
|
"arranging for destruction of %s%s%s...",
|
||||||
|
c.sgrIdent, name, c.sgrRes,
|
||||||
|
)
|
||||||
idents = append(idents, identPair{id, name})
|
idents = append(idents, identPair{id, name})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +105,10 @@ func (c *Cache) Clean(dry, inputs bool, keep ...Artifact) (
|
|||||||
if err = c.parent.Err(); err != nil {
|
if err = c.parent.Err(); err != nil {
|
||||||
return destroyedIdents, destroyedChecksums, err
|
return destroyedIdents, destroyedChecksums, err
|
||||||
}
|
}
|
||||||
c.msg.Verbosef("destroying checksum %s...", name)
|
c.msg.Verbosef(
|
||||||
|
"destroying checksum %s%s%s...",
|
||||||
|
c.sgrIdent, name, c.sgrRes,
|
||||||
|
)
|
||||||
if !dry {
|
if !dry {
|
||||||
if err = errors.Join(removeAll(c.base.Append(
|
if err = errors.Join(removeAll(c.base.Append(
|
||||||
dirChecksum,
|
dirChecksum,
|
||||||
@@ -130,7 +136,10 @@ func (c *Cache) Clean(dry, inputs bool, keep ...Artifact) (
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
c.msg.Verbosef("destroying substitute %s...", name)
|
c.msg.Verbosef(
|
||||||
|
"destroying substitute %s%s%s...",
|
||||||
|
c.sgrIdent, name, c.sgrRes,
|
||||||
|
)
|
||||||
if !dry {
|
if !dry {
|
||||||
if err = os.Remove(c.base.Append(
|
if err = os.Remove(c.base.Append(
|
||||||
dirStatus,
|
dirStatus,
|
||||||
|
|||||||
+15
-4
@@ -444,7 +444,7 @@ func scanVerbose(
|
|||||||
msg message.Msg,
|
msg message.Msg,
|
||||||
cancel context.CancelFunc,
|
cancel context.CancelFunc,
|
||||||
done chan<- struct{},
|
done chan<- struct{},
|
||||||
prefix string,
|
prefix, suffix string,
|
||||||
r io.Reader,
|
r io.Reader,
|
||||||
) {
|
) {
|
||||||
defer close(done)
|
defer close(done)
|
||||||
@@ -454,7 +454,7 @@ func scanVerbose(
|
|||||||
bufio.MaxScanTokenSize<<12,
|
bufio.MaxScanTokenSize<<12,
|
||||||
)
|
)
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
msg.Verbose(prefix, s.Text())
|
msg.Verbose(prefix, s.Text()+suffix)
|
||||||
}
|
}
|
||||||
if err := s.Err(); err != nil && !errors.Is(err, os.ErrClosed) {
|
if err := s.Err(); err != nil && !errors.Is(err, os.ErrClosed) {
|
||||||
cancel()
|
cancel()
|
||||||
@@ -728,14 +728,25 @@ func (a *execArtifact) cure(f *FContext, hostNet bool) (err error) {
|
|||||||
|
|
||||||
brStdout, brStderr := f.cache.getReader(stdout), f.cache.getReader(stderr)
|
brStdout, brStderr := f.cache.getReader(stdout), f.cache.getReader(stderr)
|
||||||
stdoutDone, stderrDone := make(chan struct{}), make(chan struct{})
|
stdoutDone, stderrDone := make(chan struct{}), make(chan struct{})
|
||||||
|
|
||||||
|
var suffix, prefixO, prefixE string
|
||||||
|
if f.cache.attr.Flags&CColourOutput != 0 {
|
||||||
|
suffix = "\x1b[0m"
|
||||||
|
prefixO = "\x1b[1;37m(" + a.name + ")\x1b[0m"
|
||||||
|
prefixE = "\x1b[1;97m(" + a.name + ")\x1b[0m"
|
||||||
|
} else {
|
||||||
|
prefixO = "(" + a.name + ":1)"
|
||||||
|
prefixE = "(" + a.name + ":2)"
|
||||||
|
}
|
||||||
|
|
||||||
go scanVerbose(
|
go scanVerbose(
|
||||||
msg, cancel, stdoutDone,
|
msg, cancel, stdoutDone,
|
||||||
"("+a.name+":1)",
|
prefixO, suffix,
|
||||||
io.TeeReader(brStdout, status),
|
io.TeeReader(brStdout, status),
|
||||||
)
|
)
|
||||||
go scanVerbose(
|
go scanVerbose(
|
||||||
msg, cancel, stderrDone,
|
msg, cancel, stderrDone,
|
||||||
"("+a.name+":2)",
|
prefixE, suffix,
|
||||||
io.TeeReader(brStderr, status),
|
io.TeeReader(brStderr, status),
|
||||||
)
|
)
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|||||||
+2
-2
@@ -823,8 +823,8 @@ func (d *IRDecoder) decode() (a Artifact, err error) {
|
|||||||
d.ident[id] = a
|
d.ident[id] = a
|
||||||
} else {
|
} else {
|
||||||
d.c.msg.Verbosef(
|
d.c.msg.Verbosef(
|
||||||
"artifact %s appeared more than once in IR stream",
|
"artifact %s%s%s appeared more than once in IR stream",
|
||||||
Encode(id.Value()),
|
d.c.sgrIdent, Encode(id.Value()), d.c.sgrRes,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+77
-17
@@ -721,6 +721,9 @@ const (
|
|||||||
// CExternShallow arranges for only non-flood inputs to be fetched when
|
// CExternShallow arranges for only non-flood inputs to be fetched when
|
||||||
// curing an [Artifact] available via the external cache.
|
// curing an [Artifact] available via the external cache.
|
||||||
CExternShallow
|
CExternShallow
|
||||||
|
|
||||||
|
// CColourOutput enables output colouring via ANSI control sequences.
|
||||||
|
CColourOutput
|
||||||
)
|
)
|
||||||
|
|
||||||
// toplevel holds [context.WithCancel] over caller-supplied context, where all
|
// toplevel holds [context.WithCancel] over caller-supplied context, where all
|
||||||
@@ -776,6 +779,8 @@ type Cache struct {
|
|||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
// Reports new cures and passed to [Artifact].
|
// Reports new cures and passed to [Artifact].
|
||||||
msg message.Msg
|
msg message.Msg
|
||||||
|
// Select graphics rendition sequences, populated by Open.
|
||||||
|
sgrRes, sgrIdent, sgrWarn, sgrErr string
|
||||||
|
|
||||||
// Directory where all [Cache] related files are placed.
|
// Directory where all [Cache] related files are placed.
|
||||||
base *check.Absolute
|
base *check.Absolute
|
||||||
@@ -1132,7 +1137,10 @@ func (c *Cache) Scrub(checks int) error {
|
|||||||
} else if !ce.check(ent, want) {
|
} else if !ce.check(ent, want) {
|
||||||
wg.Go(func() { condemn(ent) })
|
wg.Go(func() { condemn(ent) })
|
||||||
} else {
|
} else {
|
||||||
c.msg.Verbosef("%s is consistent", ent.Name())
|
c.msg.Verbosef(
|
||||||
|
"%s%s%s is consistent",
|
||||||
|
c.sgrIdent, ent.Name(), c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
p.Put(want)
|
p.Put(want)
|
||||||
wg.Done()
|
wg.Done()
|
||||||
@@ -1508,10 +1516,10 @@ func (c *Cache) openFile(
|
|||||||
id := c.Ident(f)
|
id := c.Ident(f)
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
rn := reportName(f, id)
|
rn := reportName(f, id)
|
||||||
c.msg.Verbosef("curing %s in memory...", rn)
|
c.msg.Verbosef("curing %s%s%s in memory...", c.sgrIdent, rn, c.sgrRes)
|
||||||
defer func() {
|
defer func() {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
c.msg.Verbosef("opened %s for reading", rn)
|
c.msg.Verbosef("opened %s%s%s for reading", c.sgrIdent, rn, c.sgrRes)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
@@ -1818,6 +1826,10 @@ func (e *DependencyCureError) Error() string {
|
|||||||
|
|
||||||
// enterCure must be called before entering an [Artifact] implementation.
|
// enterCure must be called before entering an [Artifact] implementation.
|
||||||
func (c *Cache) enterCure(a Artifact, curesExempt bool) error {
|
func (c *Cache) enterCure(a Artifact, curesExempt bool) error {
|
||||||
|
if c.attr.Notify != nil {
|
||||||
|
c.attr.Notify <- true
|
||||||
|
}
|
||||||
|
|
||||||
if a.IsExclusive() {
|
if a.IsExclusive() {
|
||||||
c.exclMu.Lock()
|
c.exclMu.Lock()
|
||||||
}
|
}
|
||||||
@@ -1840,6 +1852,10 @@ func (c *Cache) enterCure(a Artifact, curesExempt bool) error {
|
|||||||
|
|
||||||
// exitCure must be called after exiting an [Artifact] implementation.
|
// exitCure must be called after exiting an [Artifact] implementation.
|
||||||
func (c *Cache) exitCure(a Artifact, curesExempt bool) {
|
func (c *Cache) exitCure(a Artifact, curesExempt bool) {
|
||||||
|
if c.attr.Notify != nil {
|
||||||
|
c.attr.Notify <- false
|
||||||
|
}
|
||||||
|
|
||||||
if a.IsExclusive() {
|
if a.IsExclusive() {
|
||||||
c.exclMu.Unlock()
|
c.exclMu.Unlock()
|
||||||
}
|
}
|
||||||
@@ -1890,7 +1906,10 @@ func (mr *measuredReader) Close() (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if n > 0 {
|
if n > 0 {
|
||||||
mr.c.msg.Verbosef("missed %d bytes on measured reader", n)
|
mr.c.msg.Verbosef(
|
||||||
|
"%smissed %d bytes on measured reader%s",
|
||||||
|
mr.c.sgrWarn, n, mr.c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = mr.r.Close(); err != nil {
|
if err = mr.r.Close(); err != nil {
|
||||||
@@ -2151,8 +2170,9 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
)
|
)
|
||||||
if errors.Is(err, os.ErrExist) {
|
if errors.Is(err, os.ErrExist) {
|
||||||
c.msg.Verbosef(
|
c.msg.Verbosef(
|
||||||
"creating alternative over %s for artifact %s",
|
"creating alternative over %s%s%s for artifact %s%s%s",
|
||||||
Encode(substitute.Value()), ids,
|
c.sgrIdent, Encode(substitute.Value()), c.sgrRes,
|
||||||
|
c.sgrIdent, ids, c.sgrRes,
|
||||||
)
|
)
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
@@ -2195,15 +2215,18 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
whence = WNew
|
whence = WNew
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
rn := reportName(a, id)
|
rn := reportName(a, id)
|
||||||
c.msg.Verbosef("curing %s...", rn)
|
c.msg.Verbosef("curing %s%s%s...", c.sgrIdent, rn, c.sgrRes)
|
||||||
defer func() {
|
defer func() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if checksums != "" {
|
if checksums != "" {
|
||||||
c.msg.Verbosef("cured %s checksum %s", rn, checksums)
|
c.msg.Verbosef(
|
||||||
|
"cured %s%s%s checksum %s%s%s",
|
||||||
|
c.sgrIdent, rn, c.sgrRes,
|
||||||
|
c.sgrIdent, checksums, c.sgrRes)
|
||||||
} else {
|
} else {
|
||||||
c.msg.Verbosef("cured %s", rn)
|
c.msg.Verbosef("cured %s%s%s", c.sgrIdent, rn, c.sgrRes)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
@@ -2298,7 +2321,11 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
c.exitCure(a, curesExempt)
|
c.exitCure(a, curesExempt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
c.msg.Verbosef("cure file %s: %v", reportName(f, id), err)
|
c.msg.Verbosef(
|
||||||
|
"cure file %s%s%s: %s%v%s",
|
||||||
|
c.sgrIdent, reportName(f, id), c.sgrRes,
|
||||||
|
c.sgrErr, err, c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -2345,7 +2372,11 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
c.exitCure(a, curesExempt)
|
c.exitCure(a, curesExempt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
c.msg.Verbosef("cure trivial %s: %v", reportName(ca, id), err)
|
c.msg.Verbosef(
|
||||||
|
"cure trivial %s%s%s: %s%v%s",
|
||||||
|
c.sgrIdent, reportName(ca, id), c.sgrRes,
|
||||||
|
c.sgrErr, err, c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -2355,7 +2386,11 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
var externChecksum unique.Handle[Checksum]
|
var externChecksum unique.Handle[Checksum]
|
||||||
if externChecksum, err = c.tryExtern(ctx, id); err != nil {
|
if externChecksum, err = c.tryExtern(ctx, id); err != nil {
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
c.msg.Verbosef("extern %s: %v", reportName(ca, id), err)
|
c.msg.Verbosef(
|
||||||
|
"extern %s%s%s: %s%v%s",
|
||||||
|
c.sgrIdent, reportName(ca, id), c.sgrRes,
|
||||||
|
c.sgrErr, err, c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -2395,8 +2430,8 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
if sum == zeroChecksum {
|
if sum == zeroChecksum {
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
c.msg.Verbosef(
|
c.msg.Verbosef(
|
||||||
"input %s not available",
|
"input %s%s%s not available",
|
||||||
reportName(d, did),
|
c.sgrIdent, reportName(d, did), c.sgrRes,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
err = HangingInputError(did)
|
err = HangingInputError(did)
|
||||||
@@ -2460,7 +2495,11 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
if checksum != zeroChecksum && externChecksum != checksum {
|
if checksum != zeroChecksum && externChecksum != checksum {
|
||||||
err = &ChecksumMismatchError{externChecksum.Value(), checksum.Value()}
|
err = &ChecksumMismatchError{externChecksum.Value(), checksum.Value()}
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
c.msg.Verbosef("extern %s: %v", reportName(ca, id), err)
|
c.msg.Verbosef(
|
||||||
|
"extern %s%s%s: %s%v%s",
|
||||||
|
c.sgrIdent, reportName(ca, id), c.sgrRes,
|
||||||
|
c.sgrErr, err, c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -2509,7 +2548,11 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
c.msg.Verbosef("cure %s: %v", reportName(ca, id), err)
|
c.msg.Verbosef(
|
||||||
|
"cure %s%s%s: %s%v%s",
|
||||||
|
c.sgrIdent, reportName(ca, id), c.sgrRes,
|
||||||
|
c.sgrErr, err, c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -2560,7 +2603,11 @@ func (c *Cache) cure(a Artifact, curesExempt, rebuild bool) (
|
|||||||
Want: checksum.Value(),
|
Want: checksum.Value(),
|
||||||
}
|
}
|
||||||
if c.msg.IsVerbose() {
|
if c.msg.IsVerbose() {
|
||||||
c.msg.Verbosef("validate %s: %v", reportName(a, id), err)
|
c.msg.Verbosef(
|
||||||
|
"validate %s%s%s: %s%v%s",
|
||||||
|
c.sgrIdent, reportName(a, id), c.sgrRes,
|
||||||
|
c.sgrErr, err, c.sgrRes,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -2702,6 +2749,10 @@ func (c *Cache) Close() {
|
|||||||
c.wg.Wait()
|
c.wg.Wait()
|
||||||
close(c.cures)
|
close(c.cures)
|
||||||
c.unlock()
|
c.unlock()
|
||||||
|
|
||||||
|
if c.attr.Notify != nil {
|
||||||
|
close(c.attr.Notify)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnsupportedVariantError describes an on-disk cache with an extension variant
|
// UnsupportedVariantError describes an on-disk cache with an extension variant
|
||||||
@@ -2729,6 +2780,8 @@ type CacheAttr struct {
|
|||||||
Jobs int
|
Jobs int
|
||||||
// Preferred loadavg target, when applicable.
|
// Preferred loadavg target, when applicable.
|
||||||
Load int
|
Load int
|
||||||
|
// Optional cure entry and exit notification.
|
||||||
|
Notify chan<- bool
|
||||||
|
|
||||||
// Omit the [lockedfile] lock.
|
// Omit the [lockedfile] lock.
|
||||||
skipLock bool
|
skipLock bool
|
||||||
@@ -2895,6 +2948,13 @@ func Open(
|
|||||||
return nil, UnsupportedVariantError(s)
|
return nil, UnsupportedVariantError(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if a.Flags&CColourOutput != 0 {
|
||||||
|
c.sgrRes = "\x1b[0m"
|
||||||
|
c.sgrIdent = "\x1b[1m"
|
||||||
|
c.sgrWarn = "\x1b[35m"
|
||||||
|
c.sgrErr = "\x1b[1;31m"
|
||||||
|
}
|
||||||
|
|
||||||
return &c, nil
|
return &c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -174,8 +174,8 @@ func (a *tarArtifact) Cure(t *TContext) (err error) {
|
|||||||
|
|
||||||
case tar.TypeChar:
|
case tar.TypeChar:
|
||||||
t.GetMessage().Verbosef(
|
t.GetMessage().Verbosef(
|
||||||
"skipping character device %d, %d %q",
|
"%sskipping character device %d, %d %q%s",
|
||||||
header.Devmajor, header.Devminor, header.Name,
|
t.cache.sgrWarn, header.Devmajor, header.Devminor, header.Name, t.cache.sgrRes,
|
||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ type CMakeHelper struct {
|
|||||||
var _ Helper = new(CMakeHelper)
|
var _ Helper = new(CMakeHelper)
|
||||||
|
|
||||||
// extra returns the cmake handle alongside either ninja or make.
|
// extra returns the cmake handle alongside either ninja or make.
|
||||||
func (attr *CMakeHelper) extra(int) P {
|
func (attr *CMakeHelper) extra() P {
|
||||||
if attr != nil && attr.Make {
|
if attr != nil && attr.Make {
|
||||||
return P{_cmake, _make}
|
return P{_cmake, _make}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,6 +107,8 @@ func init() {
|
|||||||
a := cureEtc{}
|
a := cureEtc{}
|
||||||
if r.ReadUint32() == 0 {
|
if r.ReadUint32() == 0 {
|
||||||
a.minimal = true
|
a.minimal = true
|
||||||
|
} else {
|
||||||
|
r.Next()
|
||||||
}
|
}
|
||||||
if _, ok := r.Finalise(); ok {
|
if _, ok := r.Finalise(); ok {
|
||||||
panic(pkg.ErrUnexpectedChecksum)
|
panic(pkg.ErrUnexpectedChecksum)
|
||||||
|
|||||||
+14
-7
@@ -20,19 +20,26 @@ func (t Toolchain) NewViaGit(
|
|||||||
return t.New(strings.TrimSuffix(
|
return t.New(strings.TrimSuffix(
|
||||||
path.Base(url),
|
path.Base(url),
|
||||||
".git",
|
".git",
|
||||||
)+"-src-"+path.Base(rev), THostNet, t.Append(nil,
|
)+"-src", path.Base(rev), nil, &PackageAttr{
|
||||||
_nssCACert,
|
KnownChecksum: &checksum,
|
||||||
_git,
|
|
||||||
), &checksum, nil, `
|
HostNet: true,
|
||||||
|
Paths: []pkg.ExecPath{resolvconf()},
|
||||||
|
}, &GenericHelper{
|
||||||
|
Build: `
|
||||||
git \
|
git \
|
||||||
-c advice.detachedHead=false \
|
-c advice.detachedHead=false \
|
||||||
clone \
|
clone \
|
||||||
--depth=1 \
|
--depth=1 \
|
||||||
--revision=`+rev+` \
|
--revision=` + rev + ` \
|
||||||
--shallow-submodules \
|
--shallow-submodules \
|
||||||
--recurse-submodules \
|
--recurse-submodules \
|
||||||
`+url+` \
|
` + url + ` \
|
||||||
/work
|
/work
|
||||||
rm -rf /work/.git
|
rm -rf /work/.git
|
||||||
`, resolvconf())
|
`,
|
||||||
|
},
|
||||||
|
_nssCACert,
|
||||||
|
_git,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -13,7 +13,7 @@ func (t Toolchain) newGo(
|
|||||||
script string,
|
script string,
|
||||||
boot ...pkg.Artifact,
|
boot ...pkg.Artifact,
|
||||||
) pkg.Artifact {
|
) pkg.Artifact {
|
||||||
return t.NewPackage("go", version, newTar(
|
return t.New("go", version, newTar(
|
||||||
"https://go.dev/dl/go"+version+".src.tar.gz",
|
"https://go.dev/dl/go"+version+".src.tar.gz",
|
||||||
checksum,
|
checksum,
|
||||||
pkg.Gzip,
|
pkg.Gzip,
|
||||||
@@ -75,7 +75,7 @@ func init() {
|
|||||||
)
|
)
|
||||||
switch t.arch {
|
switch t.arch {
|
||||||
case "amd64":
|
case "amd64":
|
||||||
bootstrapEarly = []pkg.Artifact{t.NewPackage("go", "1.4-bootstrap", newTar(
|
bootstrapEarly = []pkg.Artifact{t.New("go", "1.4-bootstrap", newTar(
|
||||||
"https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
|
"https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz",
|
||||||
"8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23",
|
"8o9JL_ToiQKadCTb04nvBDkp8O1xiWOolAxVEqaTGodieNe4lOFEjlOxN3bwwe23",
|
||||||
pkg.Gzip,
|
pkg.Gzip,
|
||||||
|
|||||||
+17
-3
@@ -83,9 +83,11 @@ func init() {
|
|||||||
{"LIBCXX_ENABLE_STATIC_ABI_LIBRARY", "OFF"},
|
{"LIBCXX_ENABLE_STATIC_ABI_LIBRARY", "OFF"},
|
||||||
{"LIBCXX_HAS_MUSL_LIBC", "ON"},
|
{"LIBCXX_HAS_MUSL_LIBC", "ON"},
|
||||||
{"LIBCXX_HARDENING_MODE", "fast"},
|
{"LIBCXX_HARDENING_MODE", "fast"},
|
||||||
|
{"LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY", "ON"},
|
||||||
{"LIBCXXABI_USE_LLVM_UNWINDER", "ON"},
|
{"LIBCXXABI_USE_LLVM_UNWINDER", "ON"},
|
||||||
{"LIBCXXABI_ENABLE_STATIC_UNWINDER", "OFF"},
|
{"LIBCXXABI_ENABLE_STATIC_UNWINDER", "ON"},
|
||||||
{"LIBCXXABI_USE_COMPILER_RT", "ON"},
|
{"LIBCXXABI_USE_COMPILER_RT", "ON"},
|
||||||
|
{"LIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY", "ON"},
|
||||||
{"LLVM_INSTALL_BINUTILS_SYMLINKS", "ON"},
|
{"LLVM_INSTALL_BINUTILS_SYMLINKS", "ON"},
|
||||||
{"LLVM_INSTALL_UTILS", "ON"},
|
{"LLVM_INSTALL_UTILS", "ON"},
|
||||||
{"LLVM_BUILD_LLVM_DYLIB", "ON"},
|
{"LLVM_BUILD_LLVM_DYLIB", "ON"},
|
||||||
@@ -138,6 +140,10 @@ func init() {
|
|||||||
"CodeGen/PowerPC/ppc-tmmintrin.c",
|
"CodeGen/PowerPC/ppc-tmmintrin.c",
|
||||||
"CodeGen/PowerPC/ppc-smmintrin.c",
|
"CodeGen/PowerPC/ppc-smmintrin.c",
|
||||||
"CodeGenCUDA/amdgpu-alias-undef-symbols.cu",
|
"CodeGenCUDA/amdgpu-alias-undef-symbols.cu",
|
||||||
|
// clang: deadlocks with LIBCXXABI_ENABLE_STATIC_UNWINDER
|
||||||
|
"global-value-regex",
|
||||||
|
"global-hex-value-regex",
|
||||||
|
"check-globals",
|
||||||
// cxx: fails on musl
|
// cxx: fails on musl
|
||||||
"close.dont-get-rid-of-buffer",
|
"close.dont-get-rid-of-buffer",
|
||||||
"re/re.traits",
|
"re/re.traits",
|
||||||
@@ -178,8 +184,8 @@ func init() {
|
|||||||
}...)
|
}...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &meta, t.NewPackage("llvm", meta.Version, source, &PackageAttr{
|
return &meta, t.New("llvm", meta.Version, source, &PackageAttr{
|
||||||
Flag: TExclusive,
|
Exclusive: true,
|
||||||
Bin: []string{
|
Bin: []string{
|
||||||
"chmod",
|
"chmod",
|
||||||
"mkdir",
|
"mkdir",
|
||||||
@@ -187,6 +193,10 @@ func init() {
|
|||||||
"tr",
|
"tr",
|
||||||
"awk",
|
"awk",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
ScriptEarly: `
|
||||||
|
rm -f /system/bin/clang++.cfg
|
||||||
|
`,
|
||||||
}, &CMakeHelper{
|
}, &CMakeHelper{
|
||||||
Append: []string{"llvm"},
|
Append: []string{"llvm"},
|
||||||
|
|
||||||
@@ -196,6 +206,10 @@ ln -s ld.lld /work/system/bin/ld
|
|||||||
ln -s clang /work/system/bin/cc
|
ln -s clang /work/system/bin/cc
|
||||||
ln -s clang /work/system/bin/cpp
|
ln -s clang /work/system/bin/cpp
|
||||||
ln -s clang++ /work/system/bin/c++
|
ln -s clang++ /work/system/bin/c++
|
||||||
|
cat << EOF > /work/system/bin/clang++.cfg
|
||||||
|
-static-libstdc++
|
||||||
|
-Wl,--exclude-libs,libunwind.a:libc++.a:libc++experimental.a:libc++abi.a
|
||||||
|
EOF
|
||||||
`,
|
`,
|
||||||
|
|
||||||
// LLVM_LINK_LLVM_DYLIB causes llvm test suite to leak system
|
// LLVM_LINK_LLVM_DYLIB causes llvm test suite to leak system
|
||||||
|
|||||||
@@ -52,15 +52,16 @@ type MakeHelper struct {
|
|||||||
var _ Helper = new(MakeHelper)
|
var _ Helper = new(MakeHelper)
|
||||||
|
|
||||||
// extra returns make and other optional dependencies.
|
// extra returns make and other optional dependencies.
|
||||||
func (attr *MakeHelper) extra(flag int) P {
|
func (attr *MakeHelper) extra() P {
|
||||||
extra := P{_make}
|
if attr == nil || !attr.OmitDefaults {
|
||||||
if (attr == nil || !attr.OmitDefaults) && flag&TEarly == 0 {
|
return P{
|
||||||
extra = append(extra,
|
_make,
|
||||||
|
|
||||||
_awk,
|
_awk,
|
||||||
_coreutils,
|
_coreutils,
|
||||||
)
|
|
||||||
}
|
}
|
||||||
return extra
|
}
|
||||||
|
return P{_make}
|
||||||
}
|
}
|
||||||
|
|
||||||
// wantsChmod returns whether the build system needs to be generated.
|
// wantsChmod returns whether the build system needs to be generated.
|
||||||
@@ -172,6 +173,7 @@ make \
|
|||||||
scriptMake += attr.ScriptCheckEarly + `make \
|
scriptMake += attr.ScriptCheckEarly + `make \
|
||||||
` + jobsFlagE + ` \
|
` + jobsFlagE + ` \
|
||||||
` + loadFlagE + ` \
|
` + loadFlagE + ` \
|
||||||
|
AM_COLOR_TESTS=always \
|
||||||
`
|
`
|
||||||
if len(attr.Check) > 0 {
|
if len(attr.Check) > 0 {
|
||||||
scriptMake += strings.Join(attr.Check, " \\\n\t")
|
scriptMake += strings.Join(attr.Check, " \\\n\t")
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ type MesonHelper struct {
|
|||||||
var _ Helper = new(MesonHelper)
|
var _ Helper = new(MesonHelper)
|
||||||
|
|
||||||
// extra returns hardcoded meson runtime dependencies.
|
// extra returns hardcoded meson runtime dependencies.
|
||||||
func (attr *MesonHelper) extra(int) P {
|
func (attr *MesonHelper) extra() P {
|
||||||
if !attr.isPython() {
|
if !attr.isPython() {
|
||||||
return P{_muon}
|
return P{_muon}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,14 @@ package bison {
|
|||||||
|
|
||||||
version# = "3.8.2";
|
version# = "3.8.2";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/bison/bison-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/bison/bison-"+version+".tar.gz";
|
||||||
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y";
|
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
toyboxEarly = true;
|
||||||
exec = make {
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
check = [
|
check = [
|
||||||
"TESTSUITEFLAGS=" + jobsFlagE + "' " + skipGNUTests {
|
"TESTSUITEFLAGS=" + jobsFlagE + "' " + skipGNUTests {
|
||||||
tests = [
|
tests = [
|
||||||
@@ -24,6 +26,5 @@ package bison {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
toyboxEarly = true;
|
|
||||||
inputs = [ m4 ];
|
inputs = [ m4 ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,5 +18,7 @@ package byacc {
|
|||||||
writable = true;
|
writable = true;
|
||||||
chmod = true;
|
chmod = true;
|
||||||
|
|
||||||
exec = make {};
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package cmake {
|
|||||||
website = "https://cmake.org";
|
website = "https://cmake.org";
|
||||||
anitya = 306;
|
anitya = 306;
|
||||||
|
|
||||||
version# = "4.4.0";
|
version# = "4.4.2";
|
||||||
source = remoteGitHubRelease {
|
source = remoteGitHubRelease {
|
||||||
suffix = "Kitware/CMake";
|
suffix = "Kitware/CMake";
|
||||||
tag = "v"+version;
|
tag = "v"+version;
|
||||||
name = "cmake-"+version+".tar.gz";
|
name = "cmake-"+version+".tar.gz";
|
||||||
checksum = "ZL0Y19_mSJWsl3dMjRRQJAaCvl4_PqbwpgUC1aBA-cdVdrK_gt4ylpUM2GMoQMku";
|
checksum = "IWlqJqJCZ6f-z-7Ft1U4ycvCX4riuihKale5NKWusiHemBgC3m5gCecrzikXoL7S";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
patches = [ "disable-broken-tests-musl.patch" ];
|
patches = [ "disable-broken-tests-musl.patch" ];
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package cryptsetup {
|
||||||
|
description = "open-source disk encryption";
|
||||||
|
website = "https://gitlab.com/cryptsetup/cryptsetup";
|
||||||
|
anitya = 13709;
|
||||||
|
|
||||||
|
version# = "2.8.7";
|
||||||
|
source = remoteGitLab {
|
||||||
|
domain = "gitlab.com";
|
||||||
|
suffix = "cryptsetup/cryptsetup";
|
||||||
|
ref = "v"+version;
|
||||||
|
checksum = "eDi_UaMtwhIzqpsdcA91aVb56zCYDrsDzeMWfWXAnPbuvn2bEgeH5dFs7mouHz8V";
|
||||||
|
};
|
||||||
|
|
||||||
|
bin = [ "bash" ];
|
||||||
|
exec = meson {
|
||||||
|
setup = {
|
||||||
|
"asciidoc": "disabled";
|
||||||
|
"ssh-token": "false";
|
||||||
|
"blkid": "false";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
bash,
|
||||||
|
gettext,
|
||||||
|
coreutils,
|
||||||
|
|
||||||
|
popt,
|
||||||
|
lvm2,
|
||||||
|
json-c,
|
||||||
|
e2fsprogs,
|
||||||
|
argp-standalone,
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [
|
||||||
|
popt,
|
||||||
|
lvm2,
|
||||||
|
json-c,
|
||||||
|
e2fsprogs,
|
||||||
|
openssl,
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package e2fsprogs {
|
||||||
|
description = "ext2/3/4 filesystem userspace utilities";
|
||||||
|
website = "http://e2fsprogs.sourceforge.net";
|
||||||
|
anitya = 646;
|
||||||
|
|
||||||
|
version# = "1.47.4";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git"+
|
||||||
|
"/snapshot/e2fsprogs-"+version+".tar.gz";
|
||||||
|
compress = gzip;
|
||||||
|
checksum = "gdnAEVjncIciqG-ZhFfYVv4wbBbCHBmPPYwRxltIfOTqdYH5L3ri8wk75YIVlgN0";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
configure = {
|
||||||
|
"enable-elf-shlibs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
perl,
|
||||||
|
gzip,
|
||||||
|
bzip2,
|
||||||
|
diffutils,
|
||||||
|
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -3,12 +3,12 @@ package fontconfig {
|
|||||||
website = "https://www.freedesktop.org/wiki/Software/fontconfig";
|
website = "https://www.freedesktop.org/wiki/Software/fontconfig";
|
||||||
anitya = 827;
|
anitya = 827;
|
||||||
|
|
||||||
version# = "2.18.2";
|
version# = "2.18.3";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
suffix = "fontconfig/fontconfig";
|
suffix = "fontconfig/fontconfig";
|
||||||
ref = version;
|
ref = version;
|
||||||
checksum = "P8YoQunIynBhc3gdDyPkImw_GGYoy1U4aX0jTnpkgtLmU4nqIgUyeqCH3-rNzpTd";
|
checksum = "ZZzmt8fYh-3jKJ6vHXUDbeAWM2ilRusWxdynLt3Z4E_CQQ8cCwzpuAWACXmr9qHI";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = make {
|
exec = make {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ package gawk {
|
|||||||
|
|
||||||
version# = "5.4.0";
|
version# = "5.4.0";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/gawk/gawk-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/gawk/gawk-"+version+".tar.gz";
|
||||||
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C";
|
checksum = "m0RkIolC-PI7EY5q8pcx5Y-0twlIW0Yp3wXXmV-QaHorSdf8BhZ7kW9F8iWomz0C";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ package binutils {
|
|||||||
website = "https://www.gnu.org/software/binutils";
|
website = "https://www.gnu.org/software/binutils";
|
||||||
anitya = 7981;
|
anitya = 7981;
|
||||||
|
|
||||||
version# = "2.46.1";
|
version# = "2.47";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/binutils/binutils-"+version+".tar.bz2";
|
url = "https://mirrors.kernel.org/gnu/binutils/binutils-"+version+".tar.bz2";
|
||||||
checksum = "ihCVohBxX-URAR-YFDdVrL3inLYsEVX8KbbQmcbHaShHgqqmtsvUue1h3LXSjW-d";
|
checksum = "VjbMg5KtZ6VSeNc77Z5p8RKg9eZ56g29ViKbbsF3tcFhZu0Yurg0nZt7UwB577LM";
|
||||||
compress = bzip2;
|
compress = bzip2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package glib {
|
|||||||
website = "https://developer.gnome.org/glib";
|
website = "https://developer.gnome.org/glib";
|
||||||
anitya = 10024;
|
anitya = 10024;
|
||||||
|
|
||||||
version# = "2.89.2";
|
version# = "2.89.3";
|
||||||
source = remoteGit {
|
source = remoteGit {
|
||||||
url = "https://gitlab.gnome.org/GNOME/glib.git";
|
url = "https://gitlab.gnome.org/GNOME/glib.git";
|
||||||
tag = version;
|
tag = version;
|
||||||
checksum = "ZetUwjVOKs0v2xtndzy7_4kvZY2VEESOTT45AAMJVLr22fmTRKit4MJOwruB0als";
|
checksum = "eM9KrXwhwKiZferwrILKmDeq-IGnSjr0EKqV90EEVl0Ee82QVcyVSf2LDMROHcOF";
|
||||||
};
|
};
|
||||||
|
|
||||||
files = {
|
files = {
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package glslang {
|
package glslang {
|
||||||
description = "reference front end for GLSL/ESSL";
|
description = "reference front end for GLSL/ESSL";
|
||||||
website = "https://github.com/KhronosGroup/glslang";
|
website = "https://github.com/KhronosGroup/glslang";
|
||||||
anitya = 205796;
|
anitya = 334917;
|
||||||
|
|
||||||
version# = "16.4.0";
|
version# = "1.4.357.0";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "KhronosGroup/glslang";
|
suffix = "KhronosGroup/glslang";
|
||||||
tag = version;
|
tag = "vulkan-sdk-"+version;
|
||||||
checksum = "u67ps8Fv_75QDiusvKjzgttPPPxb5V7HsObb0q6OvqQfHh0UGN2_x8Y0RKb9JEie";
|
checksum = "7Zq12xtSd5z_aEEeYCnsWR5WvcEGVlTsRaV6MqkmY1a3iNIrRbX_rrg-taI3wMe6";
|
||||||
};
|
};
|
||||||
|
|
||||||
// test suite writes to source
|
// test suite writes to source
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ package m4 {
|
|||||||
|
|
||||||
version# = "1.4.21";
|
version# = "1.4.21";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/m4/m4-"+version+".tar.bz2";
|
url = "https://mirrors.kernel.org/gnu/m4/m4-"+version+".tar.bz2";
|
||||||
checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm";
|
checksum = "pPa6YOo722Jw80l1OsH1tnUaklnPFjFT-bxGw5iAVrZTm1P8FQaWao_NXop46-pm";
|
||||||
compress = bzip2;
|
compress = bzip2;
|
||||||
};
|
};
|
||||||
@@ -17,9 +17,11 @@ package m4 {
|
|||||||
chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
|
chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exec = make {};
|
|
||||||
|
|
||||||
toyboxEarly = true;
|
toyboxEarly = true;
|
||||||
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
|
};
|
||||||
|
|
||||||
inputs = [
|
inputs = [
|
||||||
diffutils,
|
diffutils,
|
||||||
|
|
||||||
@@ -34,7 +36,7 @@ package autoconf {
|
|||||||
|
|
||||||
version# = "2.73";
|
version# = "2.73";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/autoconf/autoconf-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/autoconf/autoconf-"+version+".tar.gz";
|
||||||
checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg";
|
checksum = "yGabDTeOfaCUB0JX-h3REYLYzMzvpDwFmFFzHNR7QilChCUNE4hR6q7nma4viDYg";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -69,7 +71,7 @@ package automake {
|
|||||||
|
|
||||||
version# = "1.18.1";
|
version# = "1.18.1";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/automake/automake-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/automake/automake-"+version+".tar.gz";
|
||||||
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG";
|
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -105,7 +107,7 @@ package libtool {
|
|||||||
|
|
||||||
version# = "2.6.2";
|
version# = "2.6.2";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/libtool/libtool-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/libtool/libtool-"+version+".tar.gz";
|
||||||
checksum = "roFqdjyoGjpK7CWWLJJrTS56LuOQcIdq6Tgr4yplacSwirFHoaiDe6CojIWYinWe";
|
checksum = "roFqdjyoGjpK7CWWLJJrTS56LuOQcIdq6Tgr4yplacSwirFHoaiDe6CojIWYinWe";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -133,7 +135,7 @@ package gzip {
|
|||||||
|
|
||||||
version# = "1.14";
|
version# = "1.14";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/gzip/gzip-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/gzip/gzip-"+version+".tar.gz";
|
||||||
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q";
|
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -151,7 +153,7 @@ package sed {
|
|||||||
|
|
||||||
version# = "4.10";
|
version# = "4.10";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/sed/sed-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/sed/sed-"+version+".tar.gz";
|
||||||
checksum = "TXTRFQJCyflb-bpBRI2S5Y1DpplwvT7-KfXtpqN4AdZgZ5OtI6yStn1-bkhDKx51";
|
checksum = "TXTRFQJCyflb-bpBRI2S5Y1DpplwvT7-KfXtpqN4AdZgZ5OtI6yStn1-bkhDKx51";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -179,7 +181,7 @@ package diffutils {
|
|||||||
|
|
||||||
version# = "3.12";
|
version# = "3.12";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/diffutils/diffutils-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/diffutils/diffutils-"+version+".tar.gz";
|
||||||
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44";
|
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -194,7 +196,9 @@ test_disable '#!/bin/sh' tests/cmp
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
toyboxEarly = true;
|
toyboxEarly = true;
|
||||||
exec = make {};
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
package patch {
|
package patch {
|
||||||
@@ -204,7 +208,7 @@ package patch {
|
|||||||
|
|
||||||
version# = "2.8";
|
version# = "2.8";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/patch/patch-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/patch/patch-"+version+".tar.gz";
|
||||||
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR";
|
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -218,7 +222,9 @@ test_disable '#!/bin/sh' tests/need-filename
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
toyboxEarly = true;
|
toyboxEarly = true;
|
||||||
exec = make {};
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
package grep {
|
package grep {
|
||||||
@@ -228,7 +234,7 @@ package grep {
|
|||||||
|
|
||||||
version# = "3.12";
|
version# = "3.12";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/grep/grep-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/grep/grep-"+version+".tar.gz";
|
||||||
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1";
|
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -253,7 +259,7 @@ package gettext {
|
|||||||
|
|
||||||
version# = "1.0";
|
version# = "1.0";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/gettext/gettext-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/gettext/gettext-"+version+".tar.gz";
|
||||||
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC";
|
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -293,7 +299,7 @@ package findutils {
|
|||||||
|
|
||||||
version# = "4.11.0";
|
version# = "4.11.0";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/findutils/findutils-"+version+".tar.xz";
|
url = "https://mirrors.kernel.org/gnu/findutils/findutils-"+version+".tar.xz";
|
||||||
compress = xz;
|
compress = xz;
|
||||||
checksum = "X-qsv9aUoBL583q-4iZcBI3_7Ufd3fSIqFmNLXWdEpUihlRfMpGGyAUt8SAvDKae";
|
checksum = "X-qsv9aUoBL583q-4iZcBI3_7Ufd3fSIqFmNLXWdEpUihlRfMpGGyAUt8SAvDKae";
|
||||||
};
|
};
|
||||||
@@ -321,13 +327,14 @@ package bash {
|
|||||||
|
|
||||||
version# = "5.3";
|
version# = "5.3";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/bash/bash-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/bash/bash-"+version+".tar.gz";
|
||||||
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq";
|
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|
||||||
toyboxEarly = true;
|
toyboxEarly = true;
|
||||||
exec = make {
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
configure = {
|
configure = {
|
||||||
"without-bash-malloc";
|
"without-bash-malloc";
|
||||||
};
|
};
|
||||||
@@ -342,7 +349,7 @@ package coreutils {
|
|||||||
|
|
||||||
version# = "9.11";
|
version# = "9.11";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/coreutils/coreutils-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/coreutils/coreutils-"+version+".tar.gz";
|
||||||
checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie";
|
checksum = "t8UMed5wpFEoC56aa42_yidfOAaRGzOfj7MRtQkkqgGbpXiskNA8bd-EmVSQkZie";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -364,6 +371,7 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-lchown.c
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
exec = make {
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
configure = {
|
configure = {
|
||||||
"enable-single-binary": "symlinks";
|
"enable-single-binary": "symlinks";
|
||||||
};
|
};
|
||||||
@@ -384,7 +392,7 @@ package tar {
|
|||||||
|
|
||||||
version# = "1.35";
|
version# = "1.35";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/tar/tar-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/tar/tar-"+version+".tar.gz";
|
||||||
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA";
|
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -421,7 +429,7 @@ package texinfo {
|
|||||||
|
|
||||||
version# = "7.3";
|
version# = "7.3";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/texinfo/texinfo-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/texinfo/texinfo-"+version+".tar.gz";
|
||||||
checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-";
|
checksum = "RRmC8Xwdof7JuZJeWGAQ_GeASIHAuJFQMbNONXBz5InooKIQGmqmWRjGNGEr5n4-";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -446,7 +454,7 @@ package gperf {
|
|||||||
|
|
||||||
version# = "3.3";
|
version# = "3.3";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gperf/gperf-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/gperf/gperf-"+version+".tar.gz";
|
||||||
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7";
|
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -463,7 +471,7 @@ package bc {
|
|||||||
|
|
||||||
version# = "1.08.2";
|
version# = "1.08.2";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/bc/bc-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/bc/bc-"+version+".tar.gz";
|
||||||
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy";
|
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -486,7 +494,7 @@ package libiconv {
|
|||||||
|
|
||||||
version# = "1.19";
|
version# = "1.19";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/libiconv/libiconv-"+version+".tar.gz";
|
||||||
checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x";
|
checksum = "UibB6E23y4MksNqYmCCrA3zTFO6vJugD1DEDqqWYFZNuBsUWMVMcncb_5pPAr88x";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -501,7 +509,7 @@ package parallel {
|
|||||||
|
|
||||||
version# = "20260722";
|
version# = "20260722";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/parallel/parallel-"+version+".tar.bz2";
|
url = "https://mirrors.kernel.org/gnu/parallel/parallel-"+version+".tar.bz2";
|
||||||
checksum = "liG9pBSRqUPqDuRXmnJPoVh-G53lDKkkO8GGabSxQnSho4b9BD0EaJDdScgVhnwj";
|
checksum = "liG9pBSRqUPqDuRXmnJPoVh-G53lDKkkO8GGabSxQnSho4b9BD0EaJDdScgVhnwj";
|
||||||
compress = bzip2;
|
compress = bzip2;
|
||||||
};
|
};
|
||||||
@@ -524,7 +532,7 @@ package libunistring {
|
|||||||
|
|
||||||
version# = "1.4.2";
|
version# = "1.4.2";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/libunistring/libunistring-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/libunistring/libunistring-"+version+".tar.gz";
|
||||||
checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2";
|
checksum = "iW9BbfLoVlXjWoLTZ4AekQSu4cFBnLcZ4W8OHWbv0AhJNgD3j65_zqaLMzFKylg2";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -551,7 +559,7 @@ package libtasn1 {
|
|||||||
|
|
||||||
version# = "4.21.0";
|
version# = "4.21.0";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/libtasn1/libtasn1-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/libtasn1/libtasn1-"+version+".tar.gz";
|
||||||
checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq";
|
checksum = "9DYI3UYbfYLy8JsKUcY6f0irskbfL0fHZA91Q-JEOA3kiUwpodyjemRsYRjUpjuq";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
@@ -566,7 +574,7 @@ package readline {
|
|||||||
|
|
||||||
version# = "8.3";
|
version# = "8.3";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/readline/readline-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/readline/readline-"+version+".tar.gz";
|
||||||
checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV";
|
checksum = "r-lcGRJq_MvvBpOq47Z2Y1OI2iqrmtcqhTLVXR0xWo37ZpC2uT_md7gKq5o_qTMV";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package harfbuzz {
|
|||||||
website = "https://harfbuzz.github.io";
|
website = "https://harfbuzz.github.io";
|
||||||
anitya = 1299;
|
anitya = 1299;
|
||||||
|
|
||||||
version# = "14.2.1";
|
version# = "14.3.0";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "harfbuzz/harfbuzz";
|
suffix = "harfbuzz/harfbuzz";
|
||||||
tag = version;
|
tag = version;
|
||||||
checksum = "gWl1fS1nXSH9Z9GpJSrh6w7Iv6AOjZbDL_4JZAZTiTYSyLCfxIFuCRLjYmqT2nbt";
|
checksum = "C03eSJbyFvrOPXWhlHgwxfqUKyR9xQO_FKzbwQzT7hW9DTUAQIiwvUIf_6cqaKPm";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = meson {
|
exec = meson {
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package hwdata {
|
|||||||
website = "https://github.com/vcrhonek/hwdata";
|
website = "https://github.com/vcrhonek/hwdata";
|
||||||
anitya = 5387;
|
anitya = 5387;
|
||||||
|
|
||||||
version# = "0.409";
|
version# = "0.410";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "vcrhonek/hwdata";
|
suffix = "vcrhonek/hwdata";
|
||||||
tag = "v"+version;
|
tag = "v"+version;
|
||||||
checksum = "p2qr1_Y9dpjMNnK8OPNcuHSNwZldwb6mtiJ9Nd5HgU8z3L9fixLthnixywU8dd65";
|
checksum = "w1fbTz8NR7C6SYOupqTyNZGJHa_cDRAsGs4guZ3LddqlmawgEP_CWFw9-OYFKJ1q";
|
||||||
};
|
};
|
||||||
|
|
||||||
writable = true;
|
writable = true;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/x86 6.18.40 Kernel Configuration
|
# Linux/x86 6.18.42 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
@@ -7311,6 +7311,7 @@ CONFIG_AGP_INTEL=m
|
|||||||
CONFIG_AGP_SIS=m
|
CONFIG_AGP_SIS=m
|
||||||
CONFIG_AGP_VIA=m
|
CONFIG_AGP_VIA=m
|
||||||
CONFIG_INTEL_GTT=m
|
CONFIG_INTEL_GTT=m
|
||||||
|
CONFIG_GPU_BUDDY=y
|
||||||
CONFIG_DRM=m
|
CONFIG_DRM=m
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/arm64 6.18.40 Kernel Configuration
|
# Linux/arm64 6.18.42 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
@@ -7986,6 +7986,7 @@ CONFIG_HT16K33=m
|
|||||||
CONFIG_MAX6959=m
|
CONFIG_MAX6959=m
|
||||||
CONFIG_SEG_LED_GPIO=m
|
CONFIG_SEG_LED_GPIO=m
|
||||||
CONFIG_PANEL=m
|
CONFIG_PANEL=m
|
||||||
|
CONFIG_GPU_BUDDY=y
|
||||||
CONFIG_TEGRA_HOST1X_CONTEXT_BUS=y
|
CONFIG_TEGRA_HOST1X_CONTEXT_BUS=y
|
||||||
CONFIG_TEGRA_HOST1X=m
|
CONFIG_TEGRA_HOST1X=m
|
||||||
CONFIG_TEGRA_HOST1X_FIREWALL=y
|
CONFIG_TEGRA_HOST1X_FIREWALL=y
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package kernel-source {
|
|||||||
website = "https://kernel.org";
|
website = "https://kernel.org";
|
||||||
exclude = true;
|
exclude = true;
|
||||||
|
|
||||||
version# = "6.18.40";
|
version# = "6.18.42";
|
||||||
output = remoteTar {
|
output = remoteTar {
|
||||||
url = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
|
url = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
|
||||||
"snapshot/linux-"+version+".tar.gz";
|
"snapshot/linux-"+version+".tar.gz";
|
||||||
checksum = "s4lO-rWM-3FudvHLoD4zBEF5wDv21JR6XavpOqe5D4CCUsvwVCX4hWZ923cuAs-k";
|
checksum = "mh9iAMOo-bO970WApdufDcYImAOl3lAXKDHAZLdlX5jSTPZvP_arFFsQaaJKjy3H";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -25,6 +25,7 @@ package kernel-headers {
|
|||||||
toyboxEarly = true;
|
toyboxEarly = true;
|
||||||
|
|
||||||
exec = make {
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
skipConfigure = true;
|
skipConfigure = true;
|
||||||
make = [
|
make = [
|
||||||
"-f /usr/src/kernel-headers/Makefile",
|
"-f /usr/src/kernel-headers/Makefile",
|
||||||
@@ -45,9 +46,9 @@ cat \
|
|||||||
checksum = arch {
|
checksum = arch {
|
||||||
default = "";
|
default = "";
|
||||||
|
|
||||||
amd64 = "U2DVl4KAYBB18KOb91ga6ob7-B0OPjTHLssLXf_Lh5XEe8TTsplPxXamV9a94WpK";
|
amd64 = "mZZqI0tEpqbr3sQKOFLBeNv-DC7pkHNqPI7JdSSmo40sFCF2XnAMcah1DcUK2HTe";
|
||||||
arm64 = "oI4quef6uM-wrRoQa2dNYog4b7CtSjvLY84eXaNbRvTJA2tEm3oCx0guKBmScE38";
|
arm64 = "e6cD6TsBr1e-zONKtocvbRwmSnxqC_2K7A2KvMcO6lnpt4MXL1gsyx6k-BXqC19Z";
|
||||||
riscv64 = "bgWRcfzfAh00TZvXy4W-EkWm4lq7VAk9-Bsv53hWh2qgz1fTMqw1Q9rgo_-aKgeS";
|
riscv64 = "cljgtOrTCpyXoQLaKVmnnWPbCWkoXuMIVNjc6YXsy-zgsFzRA-H8yfJ1NojS867z";
|
||||||
};
|
};
|
||||||
inputs = [ rsync ];
|
inputs = [ rsync ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/riscv 6.18.40 Kernel Configuration
|
# Linux/riscv 6.18.42 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
@@ -6897,6 +6897,7 @@ CONFIG_HT16K33=m
|
|||||||
CONFIG_MAX6959=m
|
CONFIG_MAX6959=m
|
||||||
CONFIG_SEG_LED_GPIO=m
|
CONFIG_SEG_LED_GPIO=m
|
||||||
CONFIG_PANEL=m
|
CONFIG_PANEL=m
|
||||||
|
CONFIG_GPU_BUDDY=y
|
||||||
CONFIG_DRM=m
|
CONFIG_DRM=m
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#define LINUX_VERSION_CODE 397864
|
#define LINUX_VERSION_CODE 397866
|
||||||
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
|
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
|
||||||
#define LINUX_VERSION_MAJOR 6
|
#define LINUX_VERSION_MAJOR 6
|
||||||
#define LINUX_VERSION_PATCHLEVEL 18
|
#define LINUX_VERSION_PATCHLEVEL 18
|
||||||
#define LINUX_VERSION_SUBLEVEL 40
|
#define LINUX_VERSION_SUBLEVEL 42
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package libaio {
|
||||||
|
description = "kernel asynchronous I/O (AIO) support";
|
||||||
|
website = "https://lse.sourceforge.net/io/aio.html";
|
||||||
|
anitya = 1557;
|
||||||
|
|
||||||
|
version# = "0.3.113";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://pagure.io/libaio/archive/libaio-"+version+
|
||||||
|
"/libaio-libaio-"+version+".tar.gz";
|
||||||
|
compress = gzip;
|
||||||
|
checksum = "vUATfur4I3D742vjRhiGMLYDCm-blbsymb3JTUiM3RV5HIEWi0wDBiPqh7jJpMWd";
|
||||||
|
};
|
||||||
|
|
||||||
|
enterSource = true;
|
||||||
|
writable = true;
|
||||||
|
chmod = true;
|
||||||
|
|
||||||
|
env = [ "PATH=/system/sbin" ];
|
||||||
|
bin = [ "bash" ];
|
||||||
|
exec = make {
|
||||||
|
inPlace = true;
|
||||||
|
skipConfigure = true;
|
||||||
|
preCheck = "rm harness/cases/20.t; "+ // flaky
|
||||||
|
"CFLAGS='"+
|
||||||
|
"-Wno-unknown-warning-option "+
|
||||||
|
"-Wno-gnu-designator "+
|
||||||
|
"-Wno-#warnings' ";
|
||||||
|
check = [ "partcheck" ];
|
||||||
|
install = "make prefix=/work/system install";
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
bash,
|
||||||
|
e2fsprogs,
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -60,4 +60,5 @@ list(APPEND CTEST_CUSTOM_TESTS_IGNORE
|
|||||||
"libarchive_test_read_format_tar_filename"
|
"libarchive_test_read_format_tar_filename"
|
||||||
"libarchive_test_read_format_ustar_filename"
|
"libarchive_test_read_format_ustar_filename"
|
||||||
"libarchive_test_read_append_wrong_filter"
|
"libarchive_test_read_append_wrong_filter"
|
||||||
|
"libarchive_test_read_format_zip_ppmd8_aes256_streaming"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package libarchive {
|
|||||||
website = "https://www.libarchive.org";
|
website = "https://www.libarchive.org";
|
||||||
anitya = 1558;
|
anitya = 1558;
|
||||||
|
|
||||||
version# = "3.8.8";
|
version# = "3.8.9";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "libarchive/libarchive";
|
suffix = "libarchive/libarchive";
|
||||||
tag = "v"+version;
|
tag = "v"+version;
|
||||||
checksum = "MYlQdlxHX14rFL_zEYvDArKgGVIueTPzSEDgCzaZkmi0_N7WsaEpogGO3qnHpfTc";
|
checksum = "8C_8Mr22elOAO8Qvxl-B-R-B35M7dpdFdAlph1CeE1L75JdyUnolee-P3KDRFc8T";
|
||||||
};
|
};
|
||||||
|
|
||||||
files = { "CTestCustom.cmake"; };
|
files = { "CTestCustom.cmake"; };
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package libpsl {
|
|||||||
website = "https://rockdaboot.github.io/libpsl";
|
website = "https://rockdaboot.github.io/libpsl";
|
||||||
anitya = 7305;
|
anitya = 7305;
|
||||||
|
|
||||||
version# = "0.23.0";
|
version# = "0.23.1";
|
||||||
source = remoteGitHubRelease {
|
source = remoteGitHubRelease {
|
||||||
suffix = "rockdaboot/libpsl";
|
suffix = "rockdaboot/libpsl";
|
||||||
tag = version;
|
tag = version;
|
||||||
name = "libpsl-"+version+".tar.gz";
|
name = "libpsl-"+version+".tar.gz";
|
||||||
checksum = "7M0i3g6snxXGri0PcE5iYJFVGhZjBq1QxEom45ML0tCyu8b7i-ydvlcIAS2g9zqa";
|
checksum = "9wu0JxiNGfY3TuYeCmOq9Xm3faPHole5is_3ZL2KUCh8FyaYwpl7a85SNsz8FmPz";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,25 +3,14 @@ package libudev-zero {
|
|||||||
website = "https://github.com/illiliti/libudev-zero";
|
website = "https://github.com/illiliti/libudev-zero";
|
||||||
anitya = 145201;
|
anitya = 145201;
|
||||||
|
|
||||||
version# = "1.0.4";
|
version# = "1.0.5";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "illiliti/libudev-zero";
|
suffix = "illiliti/libudev-zero";
|
||||||
tag = version;
|
tag = version;
|
||||||
checksum = "MHETnJwIdXc62qvE1Ya9xb2Shb53gWxdXzr8FVCFEacXF1rc01yE9guP3eXlKhYw";
|
checksum = "9WJKgtQH_MxqC1lB-gveIm19gWW99wvcRpEDrc3tQwqjo1SCnbk5k6WDF5Y7DUpe";
|
||||||
};
|
};
|
||||||
|
|
||||||
env = [ "CC=cc" ];
|
exec = meson {};
|
||||||
enterSource = true;
|
|
||||||
writable = true;
|
|
||||||
|
|
||||||
exec = make {
|
|
||||||
inPlace = true;
|
|
||||||
skipConfigure = true;
|
|
||||||
skipCheck = true;
|
|
||||||
|
|
||||||
make = [ "PREFIX=/system" ];
|
|
||||||
install = "make DESTDIR=/work PREFIX=/system install";
|
|
||||||
};
|
|
||||||
|
|
||||||
inputs = [ kernel-headers ];
|
inputs = [ kernel-headers ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/src/luaconf.h b/src/luaconf.h
|
||||||
|
index 96a7780..0bfa66c 100644
|
||||||
|
--- a/src/luaconf.h
|
||||||
|
+++ b/src/luaconf.h
|
||||||
|
@@ -239,7 +239,7 @@
|
||||||
|
|
||||||
|
#else /* }{ */
|
||||||
|
|
||||||
|
-#define LUA_ROOT "/usr/local/"
|
||||||
|
+#define LUA_ROOT "/system/"
|
||||||
|
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/"
|
||||||
|
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/"
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# lua.pc -- pkg-config data for Lua
|
||||||
|
|
||||||
|
prefix=/system
|
||||||
|
INSTALL_BIN=${prefix}/bin
|
||||||
|
INSTALL_INC=${prefix}/include
|
||||||
|
INSTALL_LIB=${prefix}/lib
|
||||||
|
INSTALL_MAN=${prefix}/man/man1
|
||||||
|
INSTALL_LMOD=${prefix}/share/lua/@MAJOR_VER@.@MINOR_VER@
|
||||||
|
INSTALL_CMOD=${prefix}/lib/lua/@MAJOR_VER@.@MINOR_VER@
|
||||||
|
|
||||||
|
# canonical vars
|
||||||
|
exec_prefix=${prefix}
|
||||||
|
libdir=${exec_prefix}/lib
|
||||||
|
includedir=${prefix}/include
|
||||||
|
|
||||||
|
Name: Lua
|
||||||
|
Description: An Extensible Extension Language
|
||||||
|
Version: @MAJOR_VER@.@MINOR_VER@
|
||||||
|
Requires:
|
||||||
|
Libs: -L${libdir} -llua -lm
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
|
||||||
|
# (end of lua@MAJOR_VER@.pc)
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package lua {
|
||||||
|
description = "the programming language lua";
|
||||||
|
website = "https://www.lua.org/home.html";
|
||||||
|
anitya = 1847;
|
||||||
|
|
||||||
|
version# = "5.5.1";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://www.lua.org/ftp/lua-"+version+".tar.gz";
|
||||||
|
compress = gzip;
|
||||||
|
checksum = "8KCnY3UBf_oRuVhs7gc2pa18favYMzcMsjgeOOWjbbR9Y6W4qvm4gt1A-iMlXYBw";
|
||||||
|
};
|
||||||
|
patches = [ "conf-prefix.patch" ];
|
||||||
|
|
||||||
|
files = {
|
||||||
|
"lua.pc";
|
||||||
|
};
|
||||||
|
|
||||||
|
enterSource = true;
|
||||||
|
writable = true;
|
||||||
|
chmod = true;
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
inPlace = true;
|
||||||
|
skipConfigure = true;
|
||||||
|
make = [ "CC='clang -fPIC'", "all" ];
|
||||||
|
check = [ "test" ];
|
||||||
|
install = `
|
||||||
|
make INSTALL_TOP=/work/system install
|
||||||
|
mkdir /work/system/lib/pkgconfig
|
||||||
|
sed \
|
||||||
|
-e "s|@MAJOR_VER@|$(cc -P -E -include src/lua.h - <<< LUA_VERSION_MAJOR_N | tail -n 1)|g" \
|
||||||
|
-e "s|@MINOR_VER@|$(cc -P -E -include src/lua.h - <<< LUA_VERSION_MINOR_N | tail -n 1)|g" \
|
||||||
|
../lua.pc > /work/system/lib/pkgconfig/lua.pc
|
||||||
|
`;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
|
||||||
|
index 60739af..8b3fdf7 100644
|
||||||
|
--- a/lib/commands/toolcontext.c
|
||||||
|
+++ b/lib/commands/toolcontext.c
|
||||||
|
@@ -1661,6 +1661,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
|
||||||
|
reset_lvm_errno(1);
|
||||||
|
|
||||||
|
/* Set in/out stream buffering before glibc */
|
||||||
|
+#ifdef __GLIBC__
|
||||||
|
if (set_buffering
|
||||||
|
&& !cmd->running_on_valgrind /* Skipping within valgrind execution. */
|
||||||
|
#ifdef SYS_gettid
|
||||||
|
@@ -1704,6 +1705,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
|
||||||
|
} else if (!set_buffering)
|
||||||
|
/* Without buffering, must not use stdin/stdout */
|
||||||
|
init_silent(1);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Environment variable LVM_SYSTEM_DIR overrides this below.
|
||||||
|
@@ -2038,6 +2040,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
|
||||||
|
if (cmd->cft_def_hash)
|
||||||
|
dm_hash_destroy(cmd->cft_def_hash);
|
||||||
|
|
||||||
|
+#ifdef __GLIBC__
|
||||||
|
if (!cmd->running_on_valgrind && cmd->linebuffer) {
|
||||||
|
int flags;
|
||||||
|
/* Reset stream buffering to defaults */
|
||||||
|
@@ -2061,6 +2064,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
|
||||||
|
|
||||||
|
free(cmd->linebuffer);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
destroy_config_context(cmd);
|
||||||
|
|
||||||
|
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
|
||||||
|
index 7209ebd..778c8c0 100644
|
||||||
|
--- a/tools/lvmcmdline.c
|
||||||
|
+++ b/tools/lvmcmdline.c
|
||||||
|
@@ -3378,7 +3378,7 @@ static int _check_standard_fds(void)
|
||||||
|
int err = is_valid_fd(STDERR_FILENO);
|
||||||
|
|
||||||
|
if (!is_valid_fd(STDIN_FILENO) &&
|
||||||
|
- !(stdin = fopen(_PATH_DEVNULL, "r"))) {
|
||||||
|
+ !freopen(_PATH_DEVNULL, "r", stdin)) {
|
||||||
|
if (err)
|
||||||
|
perror("stdin stream open");
|
||||||
|
else
|
||||||
|
@@ -3388,7 +3388,7 @@ static int _check_standard_fds(void)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_valid_fd(STDOUT_FILENO) &&
|
||||||
|
- !(stdout = fopen(_PATH_DEVNULL, "w"))) {
|
||||||
|
+ !freopen(_PATH_DEVNULL, "w", stdout)) {
|
||||||
|
if (err)
|
||||||
|
perror("stdout stream open");
|
||||||
|
/* else no stdout */
|
||||||
|
@@ -3396,7 +3396,7 @@ static int _check_standard_fds(void)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_valid_fd(STDERR_FILENO) &&
|
||||||
|
- !(stderr = fopen(_PATH_DEVNULL, "w"))) {
|
||||||
|
+ !freopen(_PATH_DEVNULL, "w", stderr)) {
|
||||||
|
printf("stderr stream open: %s\n",
|
||||||
|
strerror(errno));
|
||||||
|
return 0;
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package lvm2 {
|
||||||
|
description = "userspace toolset that provide logical volume management facilities";
|
||||||
|
website = "https://sourceware.org/lvm2";
|
||||||
|
anitya = 5354;
|
||||||
|
|
||||||
|
version# = "2.03.41";
|
||||||
|
source = remoteTar {
|
||||||
|
url = "https://mirrors.kernel.org/sourceware/lvm2/releases/LVM2."+version+".tgz";
|
||||||
|
compress = gzip;
|
||||||
|
checksum = "M3L0oaeEG-0FvL7gYoeLwWIm-RBtKa4-ojwezRqL8xqiyU_5N7uE2bvwTeVJ154z";
|
||||||
|
};
|
||||||
|
patches = [
|
||||||
|
"fix-stdio-usage.patch",
|
||||||
|
"remove-man.patch",
|
||||||
|
];
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
// requires root
|
||||||
|
skipCheck = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
pkg-config,
|
||||||
|
|
||||||
|
libaio,
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/Makefile.in b/Makefile.in
|
||||||
|
index bf011ff4f..86713f2cd 100644
|
||||||
|
--- a/Makefile.in
|
||||||
|
+++ b/Makefile.in
|
||||||
|
@@ -18,7 +18,7 @@ top_builddir = @top_builddir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
|
||||||
|
-SUBDIRS = libdm conf daemons include lib libdaemon man scripts tools
|
||||||
|
+SUBDIRS = libdm conf daemons include lib libdaemon scripts tools
|
||||||
|
|
||||||
|
ifeq ("@UDEV_RULES@", "yes")
|
||||||
|
SUBDIRS += udev
|
||||||
@@ -5,7 +5,7 @@ package make {
|
|||||||
|
|
||||||
version# = "4.4.1";
|
version# = "4.4.1";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/make/make-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/make/make-"+version+".tar.gz";
|
||||||
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a";
|
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ package mesa {
|
|||||||
anitya = 1970;
|
anitya = 1970;
|
||||||
latest = anityaFallback;
|
latest = anityaFallback;
|
||||||
|
|
||||||
version# = "26.1.5";
|
version# = "26.2.0";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
suffix = "mesa/mesa";
|
suffix = "mesa/mesa";
|
||||||
ref = "mesa-"+version;
|
ref = "mesa-"+version;
|
||||||
checksum = "6C3NMUvTAOTjJtiHgvj9bFUO9dC1uu_by32ZgLQg5H6sNWzYQcwDpD6V3OFkWYJj";
|
checksum = "UPnIdpo5wUsE938GXY-YyYDzfF62enRoEzCYRyLLPvzBhBbP4wZ8nDiKsjivcs5v";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = meson {
|
exec = meson {
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ package meson {
|
|||||||
tag = version;
|
tag = version;
|
||||||
checksum = "9AMilGxTOVqPA2DaGMASyuVs1BeTzgDZ0NH2oSYoRZk846ApvfOBa4cc18XEEK7M";
|
checksum = "9AMilGxTOVqPA2DaGMASyuVs1BeTzgDZ0NH2oSYoRZk846ApvfOBa4cc18XEEK7M";
|
||||||
};
|
};
|
||||||
|
patches = [
|
||||||
|
"respect-colour.patch",
|
||||||
|
"test-strip-colour.patch",
|
||||||
|
];
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"CMAKE_MAKE_PROGRAM=ninja",
|
"CMAKE_MAKE_PROGRAM=ninja",
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py
|
||||||
|
index e1d998a5d..83d6cf9d2 100644
|
||||||
|
--- a/mesonbuild/mlog.py
|
||||||
|
+++ b/mesonbuild/mlog.py
|
||||||
|
@@ -404,6 +404,8 @@ class _Logger:
|
||||||
|
_colorize_console = os.isatty(output.fileno()) and _windows_ansi()
|
||||||
|
else:
|
||||||
|
_colorize_console = os.isatty(output.fileno()) and os.environ.get('TERM', 'dumb') != 'dumb'
|
||||||
|
+ if os.environ.get('CLICOLOR_FORCE', '') != '':
|
||||||
|
+ _colorize_console = True
|
||||||
|
except Exception:
|
||||||
|
_colorize_console = False
|
||||||
|
output.colorize_console = _colorize_console # type: ignore
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py
|
||||||
|
index 0661fa529..34ab36aa9 100644
|
||||||
|
--- a/mesonbuild/mtest.py
|
||||||
|
+++ b/mesonbuild/mtest.py
|
||||||
|
@@ -1817,6 +1817,8 @@ class TestHarness:
|
||||||
|
test.exe_wrapper and test.exe_wrapper.found()):
|
||||||
|
env['MESON_EXE_WRAPPER'] = join_args(test.exe_wrapper.get_command())
|
||||||
|
env['MESON_TEST_ITERATION'] = str(iteration + 1)
|
||||||
|
+ env.pop('CLICOLOR_FORCE')
|
||||||
|
+ env.pop('FORCE_COLOR')
|
||||||
|
return SingleTestRunner(test, env, name, options)
|
||||||
|
|
||||||
|
def process_test_result(self, result: TestRun) -> None:
|
||||||
@@ -5,7 +5,7 @@ package ncurses {
|
|||||||
|
|
||||||
version# = "6.6";
|
version# = "6.6";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/ncurses/ncurses-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/ncurses/ncurses-"+version+".tar.gz";
|
||||||
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w";
|
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ package nettle {
|
|||||||
|
|
||||||
version# = "4.0";
|
version# = "4.0";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftpmirror.gnu.org/gnu/nettle/nettle-"+version+".tar.gz";
|
url = "https://mirrors.kernel.org/gnu/nettle/nettle-"+version+".tar.gz";
|
||||||
checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7";
|
checksum = "6agC-vHzzoqAlaX3K9tX8yHgrm03HLqPZzVzq8jh_ePbuPMIvpxereu_uRJFmQK7";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package noto {
|
|||||||
website = "https://fonts.google.com/noto";
|
website = "https://fonts.google.com/noto";
|
||||||
anitya = 10671;
|
anitya = 10671;
|
||||||
|
|
||||||
version# = "2026.07.01";
|
version# = "2026.08.01";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "notofonts/notofonts.github.io";
|
suffix = "notofonts/notofonts.github.io";
|
||||||
tag = "noto-monthly-release-"+version;
|
tag = "noto-monthly-release-"+version;
|
||||||
checksum = "4DdHW0aUDkcT-b3KNSNmPl_A2n4lrIeVmqjitDgUm4blGmGQjnMOtI4J9EjjYc06";
|
checksum = "xTuvGQBtw9FWrbMQ0OHC-EVpUWYwLxNHPtaind_t6nP37En0r8orIY9N0X_YrPH7";
|
||||||
};
|
};
|
||||||
|
|
||||||
enterSource = true;
|
enterSource = true;
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package pango {
|
|||||||
website = "https://www.pango.org";
|
website = "https://www.pango.org";
|
||||||
anitya = 11783;
|
anitya = 11783;
|
||||||
|
|
||||||
version# = "1.58.0";
|
version# = "1.58.2";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
suffix = "GNOME/pango";
|
suffix = "GNOME/pango";
|
||||||
ref = version;
|
ref = version;
|
||||||
checksum = "k-Jcw7ys4-Q5gS0Y3WCb1MzIWauweIdknf61hRXJmQFfszw7sM7v0dItOoHMZLQJ";
|
checksum = "e_IeoTvj9uueBXAf0s5SBBAqov_8Vc2XjdtxHCSKsg38ZfAlBoBPhHOZRd7jxTC6";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = meson {
|
exec = meson {
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
package wireplumber {
|
||||||
|
description = "session / policy manager implementation for PipeWire";
|
||||||
|
website = "https://gitlab.freedesktop.org/pipewire/wireplumber";
|
||||||
|
anitya = 235056;
|
||||||
|
|
||||||
|
version# = "0.5.15";
|
||||||
|
source = remoteGitLab {
|
||||||
|
domain = "gitlab.freedesktop.org";
|
||||||
|
suffix = "pipewire/wireplumber";
|
||||||
|
ref = version;
|
||||||
|
checksum = "Vqj8zddEfDt5ktRlnhqB6qD24LD2IlI3HnTnvssO7mWJ1cO1iGJVSkqHrLosFFfp";
|
||||||
|
};
|
||||||
|
|
||||||
|
// OSError: [Errno 30] Read-only file system: '../../usr/src/wireplumber/po/conf.pot'
|
||||||
|
writable = true;
|
||||||
|
chmod = true;
|
||||||
|
|
||||||
|
exec = meson {
|
||||||
|
setup = {
|
||||||
|
// "bundled" actually means meson wrap here
|
||||||
|
"system-lua": "true";
|
||||||
|
|
||||||
|
"elogind": "disabled";
|
||||||
|
"systemd": "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
lua,
|
||||||
|
glib,
|
||||||
|
pipewire,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [
|
||||||
|
glib,
|
||||||
|
pipewire,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
package pipewire {
|
||||||
|
description = "multimedia processing graphs";
|
||||||
|
website = "https://pipewire.org";
|
||||||
|
anitya = 57357;
|
||||||
|
|
||||||
|
version# = "1.6.8";
|
||||||
|
source = remoteGitLab {
|
||||||
|
domain = "gitlab.freedesktop.org";
|
||||||
|
suffix = "pipewire/pipewire";
|
||||||
|
ref = version;
|
||||||
|
checksum = "KPPJDODFi6RpNpoGztQGNTiINRubQ_7WVIngsboHQi0XzEhMAKVp7iaUG74QX3aE";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = meson {
|
||||||
|
setup = {
|
||||||
|
// built separately to avoid wrap
|
||||||
|
"session-managers": "[]";
|
||||||
|
|
||||||
|
"libsystemd": "disabled";
|
||||||
|
"logind": "disabled";
|
||||||
|
"udev": "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
dbus,
|
||||||
|
|
||||||
|
kernel-headers,
|
||||||
|
];
|
||||||
|
|
||||||
|
runtime = [ dbus ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package popt {
|
||||||
|
description = "C library for parsing command line parameters";
|
||||||
|
website = "http://ftp.rpm.org/popt";
|
||||||
|
anitya = 3689;
|
||||||
|
|
||||||
|
version# = "1.19";
|
||||||
|
source = remoteGitHub {
|
||||||
|
suffix = "rpm-software-management/popt";
|
||||||
|
tag = "popt-"+version+"-release";
|
||||||
|
checksum = "e8I888AbtBCLt0vR6Iym2r5Va1WVTPMwgRu4HCcANHYwG8adT0y0sxdCxIWRB5VE";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec = make {
|
||||||
|
generate = "./autogen.sh";
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = [
|
||||||
|
gzip,
|
||||||
|
automake,
|
||||||
|
libtool,
|
||||||
|
gettext,
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -3,11 +3,11 @@ package python {
|
|||||||
website = "https://www.python.org";
|
website = "https://www.python.org";
|
||||||
anitya = 13254;
|
anitya = 13254;
|
||||||
|
|
||||||
version# = "3.14.6";
|
version# = "3.14.7";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://www.python.org/ftp/python/"+version+
|
url = "https://www.python.org/ftp/python/"+version+
|
||||||
"/Python-"+version+".tgz";
|
"/Python-"+version+".tgz";
|
||||||
checksum = "yynwXnElUvlAweA_RkBKQY35P59Gu5YU6ickJs6Z-blIoHgw5KgKXROY1gq2w0ez";
|
checksum = "hXLV7_BGEFZvQ04DNIlk5IdoRZd9DkQt4abKhc8rWsLXHTeSboAWTewJ6l0-LxVz";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
patches = [ "zipfile-no-default-strict_timestamps.patch" ];
|
patches = [ "zipfile-no-default-strict_timestamps.patch" ];
|
||||||
@@ -194,11 +194,11 @@ package python-vcs-versioning {
|
|||||||
website = "https://setuptools-scm.readthedocs.io/en/latest";
|
website = "https://setuptools-scm.readthedocs.io/en/latest";
|
||||||
anitya = 389421;
|
anitya = 389421;
|
||||||
|
|
||||||
version# = "2.2.2";
|
version# = "2.2.3";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "pypa/setuptools-scm";
|
suffix = "pypa/setuptools-scm";
|
||||||
tag = "vcs-versioning-v"+version;
|
tag = "vcs-versioning-v"+version;
|
||||||
checksum = "dqKZGEjxWZ5xo4BjcpFOHxlEZfqrVWM79cRWa8OhGZY7VDSdOxrg7QVIhA6jsPcB";
|
checksum = "8nxxeo7Dh51dQo31w2m_pgZgcv4fqwsZyXGs0KHxm4MnfKZJtlXfsU0OoBRUJiuq";
|
||||||
};
|
};
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
@@ -262,11 +262,11 @@ package python-flit-core {
|
|||||||
website = "https://flit.pypa.io";
|
website = "https://flit.pypa.io";
|
||||||
anitya = 44841;
|
anitya = 44841;
|
||||||
|
|
||||||
version# = "3.12.0";
|
version# = "4.0.2";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "pypa/flit";
|
suffix = "pypa/flit";
|
||||||
tag = version;
|
tag = version;
|
||||||
checksum = "VcTsiGiDU1aPLbjSPe38f9OjJDCLcxFz9loObJqUI1ZxDHXAaQMxBpNyLz_G1Rff";
|
checksum = "LAYWMeQ2wf2fUavUctRHlEVCUUfsVu0so4d0DZh-DAkAvd8kf9ZHQd-o7dXr3tq6";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = pip {
|
exec = pip {
|
||||||
@@ -284,11 +284,11 @@ package python-packaging {
|
|||||||
website = "https://packaging.pypa.io";
|
website = "https://packaging.pypa.io";
|
||||||
anitya = 60461;
|
anitya = 60461;
|
||||||
|
|
||||||
version# = "26.2";
|
version# = "26.3";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "pypa/packaging";
|
suffix = "pypa/packaging";
|
||||||
tag = version;
|
tag = version;
|
||||||
checksum = "rdpGa2EkPFbj1mFtLKLnSwIX9gPfELcuneiICjRVDNw6By49szTFVoW8gtMMZ6ZS";
|
checksum = "WUR-PJHhN_5Se8g-RpD97ucdtzsvY6r6slzqWZ8j2m5CJ6lKALIXNL73uFTA9Qz5";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = pip {
|
exec = pip {
|
||||||
@@ -511,7 +511,7 @@ package python-mako {
|
|||||||
website = "https://www.makotemplates.org";
|
website = "https://www.makotemplates.org";
|
||||||
anitya = 3915;
|
anitya = 3915;
|
||||||
|
|
||||||
version# = "1.3.12";
|
version# = "1.4.1";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "sqlalchemy/mako";
|
suffix = "sqlalchemy/mako";
|
||||||
tag = "rel_"+join {
|
tag = "rel_"+join {
|
||||||
@@ -522,7 +522,7 @@ package python-mako {
|
|||||||
};
|
};
|
||||||
sep = "_";
|
sep = "_";
|
||||||
};
|
};
|
||||||
checksum = "OZbBsQe2MzRuAo5Mr4qRwWHGqU1EEZeBuSprDDIceAtMLIUJtO7SbERlxHIxNhLk";
|
checksum = "OYVVx9PxvZLSvA1C-lX-xElq5TvThYRElzDDKUHYU1tZMM7XlCtHSMGmdgqlbYxd";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = pip {};
|
exec = pip {};
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ package rsync {
|
|||||||
toyboxEarly = true;
|
toyboxEarly = true;
|
||||||
|
|
||||||
exec = make {
|
exec = make {
|
||||||
|
omitDefaults = true;
|
||||||
configure = {
|
configure = {
|
||||||
"disable-openssl";
|
"disable-openssl";
|
||||||
"disable-xxhash";
|
"disable-xxhash";
|
||||||
|
|||||||
@@ -5,36 +5,13 @@ package spirv-headers {
|
|||||||
// upstream changed version scheme, anitya incapable of filtering them
|
// upstream changed version scheme, anitya incapable of filtering them
|
||||||
latest = anityaFilterSPIRV;
|
latest = anityaFilterSPIRV;
|
||||||
|
|
||||||
version# = "1.4.350.1";
|
version# = "1.4.357.0";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "KhronosGroup/SPIRV-Headers";
|
suffix = "KhronosGroup/SPIRV-Headers";
|
||||||
tag = "vulkan-sdk-"+version;
|
tag = "vulkan-sdk-"+version;
|
||||||
checksum = "6cmvMCH5aiHykXcozckfMOVA0nm0am4Xr2g9swBB9FtOV1vYBHgats5aRv4uQ9Kq";
|
checksum = "KKhVra3IQ4DcciWO7J7Vphhyw-Lb9lD1ZCjcg1AIIwsY04j1DeSIrXiVfCF67juc";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
|
||||||
"0001-grammar-and-header-changes-for-SPV_INTEL_predicated_.patch",
|
|
||||||
"0002-header-updates-for-SPV_INTEL_rounded_divide_sqrt-582.patch",
|
|
||||||
"0003-Add-SPV_MESA_fragment_coverage_mask-enumerants-580.patch",
|
|
||||||
"0004-Update-headers-for-spirv-issue-373-584.patch",
|
|
||||||
"0005-Reserve-some-tokens-for-Samsung-586.patch",
|
|
||||||
"0006-Fix-OpCompositeConstructContinuedINTEL-operands-587.patch",
|
|
||||||
"0007-Update-spirv.core.grammar.json-revision-593.patch",
|
|
||||||
"0008-Reserve-ImageOperand-17-for-Google-589.patch",
|
|
||||||
"0009-Fix-OpReadPipeBlockingINTEL-OpWritePipeBlockingINTEL.patch",
|
|
||||||
"0010-Add-SPV_AMD_weak_linkage-extension-583.patch",
|
|
||||||
"0011-Add-SPV_KHR_opacity_micromap-599.patch",
|
|
||||||
"0012-Add-NonSemanticGraphDebugInfo-instruction-set-591.patch",
|
|
||||||
"0013-Revert-Add-SPV_MESA_fragment_coverage_mask-enumerant.patch",
|
|
||||||
"0014-SPV_EXT_split_barrier-600.patch",
|
|
||||||
"0015-SPV_NV_cooperative_matrix_decode_vector-601.patch",
|
|
||||||
"0016-Add-ArmExperimentalMLOperations-instruction-set-602.patch",
|
|
||||||
"0017-Add-Pred-as-a-new-SPIR-V-source-language-606.patch",
|
|
||||||
"0018-added-source-language-entry-ApilaJai-607.patch",
|
|
||||||
"0019-license-Add-or-update-REUSE-compliance-609.patch",
|
|
||||||
"0020-chore-Add-CONTRIBUTING-file-608.patch",
|
|
||||||
];
|
|
||||||
|
|
||||||
exec = cmake {
|
exec = cmake {
|
||||||
// upstream has no tests
|
// upstream has no tests
|
||||||
skipTest = true;
|
skipTest = true;
|
||||||
@@ -44,14 +21,13 @@ package spirv-headers {
|
|||||||
package spirv-tools {
|
package spirv-tools {
|
||||||
description = "an API and commands for processing SPIR-V modules";
|
description = "an API and commands for processing SPIR-V modules";
|
||||||
website = "https://github.com/KhronosGroup/SPIRV-Tools";
|
website = "https://github.com/KhronosGroup/SPIRV-Tools";
|
||||||
anitya = 14894;
|
anitya = 334920;
|
||||||
latest = anityaFallback;
|
|
||||||
|
|
||||||
version# = "2026.2";
|
version# = "1.4.357.0";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "KhronosGroup/SPIRV-Tools";
|
suffix = "KhronosGroup/SPIRV-Tools";
|
||||||
tag = "v"+version;
|
tag = "vulkan-sdk-"+version;
|
||||||
checksum = "pJ78inb4VzLy8CjQOESpIHHGYVVOR6qN-ZqB-2MzGTcKaoYb3bqhSjkKupiaJzIk";
|
checksum = "yCZ92UX21pRFjVoySWiKAUermsE3A69dkeqf_8OPVn_1MxbaP5EAcKnHf27W8eYG";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = cmake {
|
exec = cmake {
|
||||||
@@ -74,15 +50,15 @@ package spirv-llvm-translator {
|
|||||||
website = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator";
|
website = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator";
|
||||||
anitya = 227273;
|
anitya = 227273;
|
||||||
|
|
||||||
version# = "22.1.4";
|
version# = "22.1.5";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "KhronosGroup/SPIRV-LLVM-Translator";
|
suffix = "KhronosGroup/SPIRV-LLVM-Translator";
|
||||||
tag = "v"+version;
|
tag = "v"+version;
|
||||||
checksum = "xh5ReZ2_i2vX56dZBnizXdHjwsl1y4D32Ptu5IrBdqoCzBqxOlynSj83FvlkcphS";
|
checksum = "IDBWl4iv1uTASvSJhIJ8kXZfsySsqYYZgmJm7yB2cFqt3qdRd7SAFch2zQjdmrZP";
|
||||||
};
|
};
|
||||||
|
|
||||||
// litArgs emits shell syntax
|
// litArgs emits shell syntax
|
||||||
early = "\nexport LIT_OPTS=" + litArgs {
|
early = "rm -f /system/bin/clang++.cfg\nexport LIT_OPTS=" + litArgs {
|
||||||
verbose = true;
|
verbose = true;
|
||||||
|
|
||||||
skipChecks = arch {
|
skipChecks = arch {
|
||||||
-341
@@ -1,341 +0,0 @@
|
|||||||
From b8a32968473ce852a809b9de5f04f02a5a9dfa78 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Yury Plyakhin <yury.plyakhin@intel.com>
|
|
||||||
Date: Wed, 29 Apr 2026 07:52:53 -0700
|
|
||||||
Subject: [PATCH 01/26] grammar and header changes for SPV_INTEL_predicated_io
|
|
||||||
(#585)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 3 ++
|
|
||||||
.../spirv/unified1/spirv.core.grammar.json | 34 +++++++++++++++++++
|
|
||||||
include/spirv/unified1/spirv.cs | 3 ++
|
|
||||||
include/spirv/unified1/spirv.h | 8 +++++
|
|
||||||
include/spirv/unified1/spirv.hpp | 8 +++++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 8 +++++
|
|
||||||
include/spirv/unified1/spirv.json | 3 ++
|
|
||||||
include/spirv/unified1/spirv.lua | 3 ++
|
|
||||||
include/spirv/unified1/spirv.py | 3 ++
|
|
||||||
include/spirv/unified1/spv.d | 3 ++
|
|
||||||
10 files changed, 76 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index b705259..0fd8703 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -1426,6 +1426,7 @@ namespace Spv
|
|
||||||
UntypedVariableLengthArrayINTEL = 6243,
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
+ PredicatedIOINTEL = 6257,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -2694,6 +2695,8 @@ namespace Spv
|
|
||||||
OpSpecConstantArchitectureINTEL = 6252,
|
|
||||||
OpSpecConstantCapabilitiesINTEL = 6253,
|
|
||||||
OpConditionalCopyObjectINTEL = 6254,
|
|
||||||
+ OpPredicatedLoadINTEL = 6258,
|
|
||||||
+ OpPredicatedStoreINTEL = 6259,
|
|
||||||
OpGroupIMulKHR = 6401,
|
|
||||||
OpGroupFMulKHR = 6402,
|
|
||||||
OpGroupBitwiseAndKHR = 6403,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 22f5fe9..0a282c5 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -11598,6 +11598,34 @@
|
|
||||||
"provisional" : true,
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "opname" : "OpPredicatedLoadINTEL",
|
|
||||||
+ "class" : "Memory",
|
|
||||||
+ "opcode" : 6258,
|
|
||||||
+ "operands" : [
|
|
||||||
+ { "kind" : "IdResultType" },
|
|
||||||
+ { "kind" : "IdResult" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Pointer" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Predicate" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Default Value" },
|
|
||||||
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
|
|
||||||
+ ],
|
|
||||||
+ "capabilities" : [ "PredicatedIOINTEL" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "opname" : "OpPredicatedStoreINTEL",
|
|
||||||
+ "class" : "Memory",
|
|
||||||
+ "opcode" : 6259,
|
|
||||||
+ "operands" : [
|
|
||||||
+ { "kind" : "IdRef", "name" : "Pointer" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Object" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Predicate" },
|
|
||||||
+ { "kind" : "MemoryAccess", "quantifier" : "?" }
|
|
||||||
+ ],
|
|
||||||
+ "capabilities" : [ "PredicatedIOINTEL" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"opname" : "OpGroupIMulKHR",
|
|
||||||
"class" : "Group",
|
|
||||||
@@ -18659,6 +18687,12 @@
|
|
||||||
"provisional" : true,
|
|
||||||
"version": "None"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "PredicatedIOINTEL",
|
|
||||||
+ "value" : 6257,
|
|
||||||
+ "extensions" : [ "SPV_INTEL_predicated_io" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "GroupUniformArithmeticKHR",
|
|
||||||
"value" : 6400,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 2f8c1ff..375dd0b 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -1425,6 +1425,7 @@ namespace Spv
|
|
||||||
UntypedVariableLengthArrayINTEL = 6243,
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
+ PredicatedIOINTEL = 6257,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -2693,6 +2694,8 @@ namespace Spv
|
|
||||||
OpSpecConstantArchitectureINTEL = 6252,
|
|
||||||
OpSpecConstantCapabilitiesINTEL = 6253,
|
|
||||||
OpConditionalCopyObjectINTEL = 6254,
|
|
||||||
+ OpPredicatedLoadINTEL = 6258,
|
|
||||||
+ OpPredicatedStoreINTEL = 6259,
|
|
||||||
OpGroupIMulKHR = 6401,
|
|
||||||
OpGroupFMulKHR = 6402,
|
|
||||||
OpGroupBitwiseAndKHR = 6403,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index d00cf0f..9233ff0 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -1396,6 +1396,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityUntypedVariableLengthArrayINTEL = 6243,
|
|
||||||
SpvCapabilitySpecConditionalINTEL = 6245,
|
|
||||||
SpvCapabilityFunctionVariantsINTEL = 6246,
|
|
||||||
+ SpvCapabilityPredicatedIOINTEL = 6257,
|
|
||||||
SpvCapabilityGroupUniformArithmeticKHR = 6400,
|
|
||||||
SpvCapabilityTensorFloat32RoundingINTEL = 6425,
|
|
||||||
SpvCapabilityMaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -2628,6 +2629,8 @@ typedef enum SpvOp_ {
|
|
||||||
SpvOpSpecConstantArchitectureINTEL = 6252,
|
|
||||||
SpvOpSpecConstantCapabilitiesINTEL = 6253,
|
|
||||||
SpvOpConditionalCopyObjectINTEL = 6254,
|
|
||||||
+ SpvOpPredicatedLoadINTEL = 6258,
|
|
||||||
+ SpvOpPredicatedStoreINTEL = 6259,
|
|
||||||
SpvOpGroupIMulKHR = 6401,
|
|
||||||
SpvOpGroupFMulKHR = 6402,
|
|
||||||
SpvOpGroupBitwiseAndKHR = 6403,
|
|
||||||
@@ -3510,6 +3513,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|
||||||
case SpvOpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case SpvOpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case SpvOpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
@@ -4517,6 +4522,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
|
|
||||||
case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
||||||
case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
||||||
+ case SpvCapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
|
|
||||||
case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
||||||
case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
||||||
case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
||||||
@@ -5575,6 +5581,8 @@ inline const char* SpvOpToString(SpvOp value) {
|
|
||||||
case SpvOpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
|
|
||||||
case SpvOpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
|
|
||||||
case SpvOpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
|
|
||||||
+ case SpvOpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL";
|
|
||||||
+ case SpvOpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL";
|
|
||||||
case SpvOpGroupIMulKHR: return "OpGroupIMulKHR";
|
|
||||||
case SpvOpGroupFMulKHR: return "OpGroupFMulKHR";
|
|
||||||
case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 462c3f6..055086c 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -1392,6 +1392,7 @@ enum Capability {
|
|
||||||
CapabilityUntypedVariableLengthArrayINTEL = 6243,
|
|
||||||
CapabilitySpecConditionalINTEL = 6245,
|
|
||||||
CapabilityFunctionVariantsINTEL = 6246,
|
|
||||||
+ CapabilityPredicatedIOINTEL = 6257,
|
|
||||||
CapabilityGroupUniformArithmeticKHR = 6400,
|
|
||||||
CapabilityTensorFloat32RoundingINTEL = 6425,
|
|
||||||
CapabilityMaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -2624,6 +2625,8 @@ enum Op {
|
|
||||||
OpSpecConstantArchitectureINTEL = 6252,
|
|
||||||
OpSpecConstantCapabilitiesINTEL = 6253,
|
|
||||||
OpConditionalCopyObjectINTEL = 6254,
|
|
||||||
+ OpPredicatedLoadINTEL = 6258,
|
|
||||||
+ OpPredicatedStoreINTEL = 6259,
|
|
||||||
OpGroupIMulKHR = 6401,
|
|
||||||
OpGroupFMulKHR = 6402,
|
|
||||||
OpGroupBitwiseAndKHR = 6403,
|
|
||||||
@@ -3506,6 +3509,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case OpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case OpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
@@ -4513,6 +4518,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
|
|
||||||
case CapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
||||||
case CapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
||||||
+ case CapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
|
|
||||||
case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
||||||
case CapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
||||||
case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
||||||
@@ -5571,6 +5577,8 @@ inline const char* OpToString(Op value) {
|
|
||||||
case OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
|
|
||||||
case OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
|
|
||||||
case OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
|
|
||||||
+ case OpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL";
|
|
||||||
+ case OpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL";
|
|
||||||
case OpGroupIMulKHR: return "OpGroupIMulKHR";
|
|
||||||
case OpGroupFMulKHR: return "OpGroupFMulKHR";
|
|
||||||
case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index 41ebe91..0d85dfe 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -1392,6 +1392,7 @@ enum class Capability : unsigned {
|
|
||||||
UntypedVariableLengthArrayINTEL = 6243,
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
+ PredicatedIOINTEL = 6257,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -2624,6 +2625,8 @@ enum class Op : unsigned {
|
|
||||||
OpSpecConstantArchitectureINTEL = 6252,
|
|
||||||
OpSpecConstantCapabilitiesINTEL = 6253,
|
|
||||||
OpConditionalCopyObjectINTEL = 6254,
|
|
||||||
+ OpPredicatedLoadINTEL = 6258,
|
|
||||||
+ OpPredicatedStoreINTEL = 6259,
|
|
||||||
OpGroupIMulKHR = 6401,
|
|
||||||
OpGroupFMulKHR = 6402,
|
|
||||||
OpGroupBitwiseAndKHR = 6403,
|
|
||||||
@@ -3506,6 +3509,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case Op::OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case Op::OpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case Op::OpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
@@ -4513,6 +4518,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::UntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
|
|
||||||
case Capability::SpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
||||||
case Capability::FunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
||||||
+ case Capability::PredicatedIOINTEL: return "PredicatedIOINTEL";
|
|
||||||
case Capability::GroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
||||||
case Capability::TensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
||||||
case Capability::MaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
||||||
@@ -5571,6 +5577,8 @@ inline const char* OpToString(Op value) {
|
|
||||||
case Op::OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
|
|
||||||
case Op::OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
|
|
||||||
case Op::OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
|
|
||||||
+ case Op::OpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL";
|
|
||||||
+ case Op::OpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL";
|
|
||||||
case Op::OpGroupIMulKHR: return "OpGroupIMulKHR";
|
|
||||||
case Op::OpGroupFMulKHR: return "OpGroupFMulKHR";
|
|
||||||
case Op::OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index 0a200b2..ec778af 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -1358,6 +1358,7 @@
|
|
||||||
"UntypedVariableLengthArrayINTEL": 6243,
|
|
||||||
"SpecConditionalINTEL": 6245,
|
|
||||||
"FunctionVariantsINTEL": 6246,
|
|
||||||
+ "PredicatedIOINTEL": 6257,
|
|
||||||
"GroupUniformArithmeticKHR": 6400,
|
|
||||||
"TensorFloat32RoundingINTEL": 6425,
|
|
||||||
"MaskedGatherScatterINTEL": 6427,
|
|
||||||
@@ -2595,6 +2596,8 @@
|
|
||||||
"OpSpecConstantArchitectureINTEL": 6252,
|
|
||||||
"OpSpecConstantCapabilitiesINTEL": 6253,
|
|
||||||
"OpConditionalCopyObjectINTEL": 6254,
|
|
||||||
+ "OpPredicatedLoadINTEL": 6258,
|
|
||||||
+ "OpPredicatedStoreINTEL": 6259,
|
|
||||||
"OpGroupIMulKHR": 6401,
|
|
||||||
"OpGroupFMulKHR": 6402,
|
|
||||||
"OpGroupBitwiseAndKHR": 6403,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index e612025..b883dd8 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -1383,6 +1383,7 @@ spv = {
|
|
||||||
UntypedVariableLengthArrayINTEL = 6243,
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
+ PredicatedIOINTEL = 6257,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -2615,6 +2616,8 @@ spv = {
|
|
||||||
OpSpecConstantArchitectureINTEL = 6252,
|
|
||||||
OpSpecConstantCapabilitiesINTEL = 6253,
|
|
||||||
OpConditionalCopyObjectINTEL = 6254,
|
|
||||||
+ OpPredicatedLoadINTEL = 6258,
|
|
||||||
+ OpPredicatedStoreINTEL = 6259,
|
|
||||||
OpGroupIMulKHR = 6401,
|
|
||||||
OpGroupFMulKHR = 6402,
|
|
||||||
OpGroupBitwiseAndKHR = 6403,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index 1085498..590ee22 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -1354,6 +1354,7 @@ spv = {
|
|
||||||
'UntypedVariableLengthArrayINTEL' : 6243,
|
|
||||||
'SpecConditionalINTEL' : 6245,
|
|
||||||
'FunctionVariantsINTEL' : 6246,
|
|
||||||
+ 'PredicatedIOINTEL' : 6257,
|
|
||||||
'GroupUniformArithmeticKHR' : 6400,
|
|
||||||
'TensorFloat32RoundingINTEL' : 6425,
|
|
||||||
'MaskedGatherScatterINTEL' : 6427,
|
|
||||||
@@ -2558,6 +2559,8 @@ spv = {
|
|
||||||
'OpSpecConstantArchitectureINTEL' : 6252,
|
|
||||||
'OpSpecConstantCapabilitiesINTEL' : 6253,
|
|
||||||
'OpConditionalCopyObjectINTEL' : 6254,
|
|
||||||
+ 'OpPredicatedLoadINTEL' : 6258,
|
|
||||||
+ 'OpPredicatedStoreINTEL' : 6259,
|
|
||||||
'OpGroupIMulKHR' : 6401,
|
|
||||||
'OpGroupFMulKHR' : 6402,
|
|
||||||
'OpGroupBitwiseAndKHR' : 6403,
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index c9cde5d..0323867 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -1428,6 +1428,7 @@ enum Capability : uint
|
|
||||||
UntypedVariableLengthArrayINTEL = 6243,
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
+ PredicatedIOINTEL = 6257,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -2696,6 +2697,8 @@ enum Op : uint
|
|
||||||
OpSpecConstantArchitectureINTEL = 6252,
|
|
||||||
OpSpecConstantCapabilitiesINTEL = 6253,
|
|
||||||
OpConditionalCopyObjectINTEL = 6254,
|
|
||||||
+ OpPredicatedLoadINTEL = 6258,
|
|
||||||
+ OpPredicatedStoreINTEL = 6259,
|
|
||||||
OpGroupIMulKHR = 6401,
|
|
||||||
OpGroupFMulKHR = 6402,
|
|
||||||
OpGroupBitwiseAndKHR = 6403,
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
-170
@@ -1,170 +0,0 @@
|
|||||||
From 948a3b0997e2dffea5484b3df7bd5590c5b844cc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ben Ashbaugh <ben.ashbaugh@intel.com>
|
|
||||||
Date: Wed, 29 Apr 2026 08:10:46 -0700
|
|
||||||
Subject: [PATCH 02/26] header updates for SPV_INTEL_rounded_divide_sqrt (#582)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 1 +
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 6 ++++++
|
|
||||||
include/spirv/unified1/spirv.cs | 1 +
|
|
||||||
include/spirv/unified1/spirv.h | 2 ++
|
|
||||||
include/spirv/unified1/spirv.hpp | 2 ++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 2 ++
|
|
||||||
include/spirv/unified1/spirv.json | 1 +
|
|
||||||
include/spirv/unified1/spirv.lua | 1 +
|
|
||||||
include/spirv/unified1/spirv.py | 1 +
|
|
||||||
include/spirv/unified1/spv.d | 1 +
|
|
||||||
10 files changed, 18 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index 0fd8703..3d24085 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -1427,6 +1427,7 @@ namespace Spv
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
PredicatedIOINTEL = 6257,
|
|
||||||
+ RoundedDivideSqrtINTEL = 6265,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 0a282c5..4fc0ec9 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -18693,6 +18693,12 @@
|
|
||||||
"extensions" : [ "SPV_INTEL_predicated_io" ],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "RoundedDivideSqrtINTEL",
|
|
||||||
+ "value" : 6265,
|
|
||||||
+ "extensions" : [ "SPV_INTEL_rounded_divide_sqrt" ],
|
|
||||||
+ "version": "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "GroupUniformArithmeticKHR",
|
|
||||||
"value" : 6400,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 375dd0b..35b9aff 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -1426,6 +1426,7 @@ namespace Spv
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
PredicatedIOINTEL = 6257,
|
|
||||||
+ RoundedDivideSqrtINTEL = 6265,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 9233ff0..a9e4998 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -1397,6 +1397,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilitySpecConditionalINTEL = 6245,
|
|
||||||
SpvCapabilityFunctionVariantsINTEL = 6246,
|
|
||||||
SpvCapabilityPredicatedIOINTEL = 6257,
|
|
||||||
+ SpvCapabilityRoundedDivideSqrtINTEL = 6265,
|
|
||||||
SpvCapabilityGroupUniformArithmeticKHR = 6400,
|
|
||||||
SpvCapabilityTensorFloat32RoundingINTEL = 6425,
|
|
||||||
SpvCapabilityMaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -4523,6 +4524,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
||||||
case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
||||||
case SpvCapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
|
|
||||||
+ case SpvCapabilityRoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL";
|
|
||||||
case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
||||||
case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
||||||
case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 055086c..6676d71 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -1393,6 +1393,7 @@ enum Capability {
|
|
||||||
CapabilitySpecConditionalINTEL = 6245,
|
|
||||||
CapabilityFunctionVariantsINTEL = 6246,
|
|
||||||
CapabilityPredicatedIOINTEL = 6257,
|
|
||||||
+ CapabilityRoundedDivideSqrtINTEL = 6265,
|
|
||||||
CapabilityGroupUniformArithmeticKHR = 6400,
|
|
||||||
CapabilityTensorFloat32RoundingINTEL = 6425,
|
|
||||||
CapabilityMaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -4519,6 +4520,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
||||||
case CapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
||||||
case CapabilityPredicatedIOINTEL: return "PredicatedIOINTEL";
|
|
||||||
+ case CapabilityRoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL";
|
|
||||||
case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
||||||
case CapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
||||||
case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index 0d85dfe..e08b65b 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -1393,6 +1393,7 @@ enum class Capability : unsigned {
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
PredicatedIOINTEL = 6257,
|
|
||||||
+ RoundedDivideSqrtINTEL = 6265,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
@@ -4519,6 +4520,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::SpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
||||||
case Capability::FunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
||||||
case Capability::PredicatedIOINTEL: return "PredicatedIOINTEL";
|
|
||||||
+ case Capability::RoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL";
|
|
||||||
case Capability::GroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
||||||
case Capability::TensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
||||||
case Capability::MaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index ec778af..bd3f41b 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -1359,6 +1359,7 @@
|
|
||||||
"SpecConditionalINTEL": 6245,
|
|
||||||
"FunctionVariantsINTEL": 6246,
|
|
||||||
"PredicatedIOINTEL": 6257,
|
|
||||||
+ "RoundedDivideSqrtINTEL": 6265,
|
|
||||||
"GroupUniformArithmeticKHR": 6400,
|
|
||||||
"TensorFloat32RoundingINTEL": 6425,
|
|
||||||
"MaskedGatherScatterINTEL": 6427,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index b883dd8..347e010 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -1384,6 +1384,7 @@ spv = {
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
PredicatedIOINTEL = 6257,
|
|
||||||
+ RoundedDivideSqrtINTEL = 6265,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index 590ee22..a5c118d 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -1355,6 +1355,7 @@ spv = {
|
|
||||||
'SpecConditionalINTEL' : 6245,
|
|
||||||
'FunctionVariantsINTEL' : 6246,
|
|
||||||
'PredicatedIOINTEL' : 6257,
|
|
||||||
+ 'RoundedDivideSqrtINTEL' : 6265,
|
|
||||||
'GroupUniformArithmeticKHR' : 6400,
|
|
||||||
'TensorFloat32RoundingINTEL' : 6425,
|
|
||||||
'MaskedGatherScatterINTEL' : 6427,
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index 0323867..781154a 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -1429,6 +1429,7 @@ enum Capability : uint
|
|
||||||
SpecConditionalINTEL = 6245,
|
|
||||||
FunctionVariantsINTEL = 6246,
|
|
||||||
PredicatedIOINTEL = 6257,
|
|
||||||
+ RoundedDivideSqrtINTEL = 6265,
|
|
||||||
GroupUniformArithmeticKHR = 6400,
|
|
||||||
TensorFloat32RoundingINTEL = 6425,
|
|
||||||
MaskedGatherScatterINTEL = 6427,
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
-282
@@ -1,282 +0,0 @@
|
|||||||
From 157de8e260e9362225c0ce9a6675d034968abe15 Mon Sep 17 00:00:00 2001
|
|
||||||
From: mjkrol <mjkrol@gmail.com>
|
|
||||||
Date: Wed, 29 Apr 2026 17:42:37 +0200
|
|
||||||
Subject: [PATCH 03/26] Add SPV_MESA_fragment_coverage_mask enumerants (#580)
|
|
||||||
|
|
||||||
Reserve BuiltIn FragmentCoverageMaskMESA (4096) and Capability
|
|
||||||
FragmentCoverageMESA (4097) for SPV_MESA_fragment_coverage_mask.
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 2 ++
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 13 +++++++++++++
|
|
||||||
include/spirv/unified1/spirv.cs | 2 ++
|
|
||||||
include/spirv/unified1/spirv.h | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.hpp | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.json | 2 ++
|
|
||||||
include/spirv/unified1/spirv.lua | 2 ++
|
|
||||||
include/spirv/unified1/spirv.py | 2 ++
|
|
||||||
include/spirv/unified1/spv.d | 2 ++
|
|
||||||
10 files changed, 37 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index 3d24085..efd329f 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -757,6 +757,7 @@ namespace Spv
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
+ FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1169,6 +1170,7 @@ namespace Spv
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
+ FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 4fc0ec9..1a6a490 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -16170,6 +16170,12 @@
|
|
||||||
"capabilities" : [ "Shader" ],
|
|
||||||
"version": "1.0"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "FragmentCoverageMaskMESA",
|
|
||||||
+ "value" : 4096,
|
|
||||||
+ "capabilities" : [ "FragmentCoverageMESA" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "CoreIDARM",
|
|
||||||
"value" : 4160,
|
|
||||||
@@ -17309,6 +17315,13 @@
|
|
||||||
"value" : 71,
|
|
||||||
"version" : "1.6"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "FragmentCoverageMESA",
|
|
||||||
+ "value" : 4097,
|
|
||||||
+ "capabilities" : [ "Shader" ],
|
|
||||||
+ "extensions" : [ "SPV_MESA_fragment_coverage_mask" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "CoreBuiltinsARM",
|
|
||||||
"value" : 4165,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 35b9aff..248e593 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -756,6 +756,7 @@ namespace Spv
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
+ FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1168,6 +1169,7 @@ namespace Spv
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
+ FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index a9e4998..ea4fb66 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -743,6 +743,7 @@ typedef enum SpvBuiltIn_ {
|
|
||||||
SpvBuiltInSubgroupLocalInvocationId = 41,
|
|
||||||
SpvBuiltInVertexIndex = 42,
|
|
||||||
SpvBuiltInInstanceIndex = 43,
|
|
||||||
+ SpvBuiltInFragmentCoverageMaskMESA = 4096,
|
|
||||||
SpvBuiltInCoreIDARM = 4160,
|
|
||||||
SpvBuiltInCoreCountARM = 4161,
|
|
||||||
SpvBuiltInCoreMaxIDARM = 4162,
|
|
||||||
@@ -1139,6 +1140,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityShaderLayer = 69,
|
|
||||||
SpvCapabilityShaderViewportIndex = 70,
|
|
||||||
SpvCapabilityUniformDecoration = 71,
|
|
||||||
+ SpvCapabilityFragmentCoverageMESA = 4097,
|
|
||||||
SpvCapabilityCoreBuiltinsARM = 4165,
|
|
||||||
SpvCapabilityTileImageColorReadAccessEXT = 4166,
|
|
||||||
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
|
|
||||||
@@ -4118,6 +4120,7 @@ inline const char* SpvBuiltInToString(SpvBuiltIn value) {
|
|
||||||
case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
|
|
||||||
case SpvBuiltInVertexIndex: return "VertexIndex";
|
|
||||||
case SpvBuiltInInstanceIndex: return "InstanceIndex";
|
|
||||||
+ case SpvBuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
|
|
||||||
case SpvBuiltInCoreIDARM: return "CoreIDARM";
|
|
||||||
case SpvBuiltInCoreCountARM: return "CoreCountARM";
|
|
||||||
case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM";
|
|
||||||
@@ -4316,6 +4319,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilityShaderLayer: return "ShaderLayer";
|
|
||||||
case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex";
|
|
||||||
case SpvCapabilityUniformDecoration: return "UniformDecoration";
|
|
||||||
+ case SpvCapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
|
|
||||||
case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
|
|
||||||
case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
|
|
||||||
case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 6676d71..3a61c4d 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -739,6 +739,7 @@ enum BuiltIn {
|
|
||||||
BuiltInSubgroupLocalInvocationId = 41,
|
|
||||||
BuiltInVertexIndex = 42,
|
|
||||||
BuiltInInstanceIndex = 43,
|
|
||||||
+ BuiltInFragmentCoverageMaskMESA = 4096,
|
|
||||||
BuiltInCoreIDARM = 4160,
|
|
||||||
BuiltInCoreCountARM = 4161,
|
|
||||||
BuiltInCoreMaxIDARM = 4162,
|
|
||||||
@@ -1135,6 +1136,7 @@ enum Capability {
|
|
||||||
CapabilityShaderLayer = 69,
|
|
||||||
CapabilityShaderViewportIndex = 70,
|
|
||||||
CapabilityUniformDecoration = 71,
|
|
||||||
+ CapabilityFragmentCoverageMESA = 4097,
|
|
||||||
CapabilityCoreBuiltinsARM = 4165,
|
|
||||||
CapabilityTileImageColorReadAccessEXT = 4166,
|
|
||||||
CapabilityTileImageDepthReadAccessEXT = 4167,
|
|
||||||
@@ -4114,6 +4116,7 @@ inline const char* BuiltInToString(BuiltIn value) {
|
|
||||||
case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
|
|
||||||
case BuiltInVertexIndex: return "VertexIndex";
|
|
||||||
case BuiltInInstanceIndex: return "InstanceIndex";
|
|
||||||
+ case BuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
|
|
||||||
case BuiltInCoreIDARM: return "CoreIDARM";
|
|
||||||
case BuiltInCoreCountARM: return "CoreCountARM";
|
|
||||||
case BuiltInCoreMaxIDARM: return "CoreMaxIDARM";
|
|
||||||
@@ -4312,6 +4315,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilityShaderLayer: return "ShaderLayer";
|
|
||||||
case CapabilityShaderViewportIndex: return "ShaderViewportIndex";
|
|
||||||
case CapabilityUniformDecoration: return "UniformDecoration";
|
|
||||||
+ case CapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
|
|
||||||
case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
|
|
||||||
case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
|
|
||||||
case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index e08b65b..a3c8b1c 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -739,6 +739,7 @@ enum class BuiltIn : unsigned {
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
+ FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1135,6 +1136,7 @@ enum class Capability : unsigned {
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
+ FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
@@ -4114,6 +4116,7 @@ inline const char* BuiltInToString(BuiltIn value) {
|
|
||||||
case BuiltIn::SubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
|
|
||||||
case BuiltIn::VertexIndex: return "VertexIndex";
|
|
||||||
case BuiltIn::InstanceIndex: return "InstanceIndex";
|
|
||||||
+ case BuiltIn::FragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
|
|
||||||
case BuiltIn::CoreIDARM: return "CoreIDARM";
|
|
||||||
case BuiltIn::CoreCountARM: return "CoreCountARM";
|
|
||||||
case BuiltIn::CoreMaxIDARM: return "CoreMaxIDARM";
|
|
||||||
@@ -4312,6 +4315,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::ShaderLayer: return "ShaderLayer";
|
|
||||||
case Capability::ShaderViewportIndex: return "ShaderViewportIndex";
|
|
||||||
case Capability::UniformDecoration: return "UniformDecoration";
|
|
||||||
+ case Capability::FragmentCoverageMESA: return "FragmentCoverageMESA";
|
|
||||||
case Capability::CoreBuiltinsARM: return "CoreBuiltinsARM";
|
|
||||||
case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
|
|
||||||
case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index bd3f41b..88f2605 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -765,6 +765,7 @@
|
|
||||||
"SubgroupLocalInvocationId": 41,
|
|
||||||
"VertexIndex": 42,
|
|
||||||
"InstanceIndex": 43,
|
|
||||||
+ "FragmentCoverageMaskMESA": 4096,
|
|
||||||
"CoreIDARM": 4160,
|
|
||||||
"CoreCountARM": 4161,
|
|
||||||
"CoreMaxIDARM": 4162,
|
|
||||||
@@ -1101,6 +1102,7 @@
|
|
||||||
"ShaderLayer": 69,
|
|
||||||
"ShaderViewportIndex": 70,
|
|
||||||
"UniformDecoration": 71,
|
|
||||||
+ "FragmentCoverageMESA": 4097,
|
|
||||||
"CoreBuiltinsARM": 4165,
|
|
||||||
"TileImageColorReadAccessEXT": 4166,
|
|
||||||
"TileImageDepthReadAccessEXT": 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index 347e010..db1bfd5 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -730,6 +730,7 @@ spv = {
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
+ FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1126,6 +1127,7 @@ spv = {
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
+ FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index a5c118d..976e23b 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -711,6 +711,7 @@ spv = {
|
|
||||||
'SubgroupLocalInvocationId' : 41,
|
|
||||||
'VertexIndex' : 42,
|
|
||||||
'InstanceIndex' : 43,
|
|
||||||
+ 'FragmentCoverageMaskMESA' : 4096,
|
|
||||||
'CoreIDARM' : 4160,
|
|
||||||
'CoreCountARM' : 4161,
|
|
||||||
'CoreMaxIDARM' : 4162,
|
|
||||||
@@ -1097,6 +1098,7 @@ spv = {
|
|
||||||
'ShaderLayer' : 69,
|
|
||||||
'ShaderViewportIndex' : 70,
|
|
||||||
'UniformDecoration' : 71,
|
|
||||||
+ 'FragmentCoverageMESA' : 4097,
|
|
||||||
'CoreBuiltinsARM' : 4165,
|
|
||||||
'TileImageColorReadAccessEXT' : 4166,
|
|
||||||
'TileImageDepthReadAccessEXT' : 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index 781154a..a9093d6 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -759,6 +759,7 @@ enum BuiltIn : uint
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
+ FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1171,6 +1172,7 @@ enum Capability : uint
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
+ FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
From 1a22b167081842915a1c78a0b5b5a353a23284aa Mon Sep 17 00:00:00 2001
|
|
||||||
From: alelenv <40001162+alelenv@users.noreply.github.com>
|
|
||||||
Date: Wed, 29 Apr 2026 08:50:18 -0700
|
|
||||||
Subject: [PATCH 04/26] Update headers for spirv issue 373 (#584)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 1a6a490..c7e3cc3 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -6505,7 +6505,8 @@
|
|
||||||
{ "kind" : "IdRef", "name" : "Hit Object" },
|
|
||||||
{ "kind" : "IdRef", "name" : "Ray Query" },
|
|
||||||
{ "kind" : "IdRef", "name" : "SBT Record Index" },
|
|
||||||
- { "kind" : "IdRef", "name" : "Hit Object Attributes" }
|
|
||||||
+ { "kind" : "IdRef", "name" : "Hit Object Attributes" },
|
|
||||||
+ { "kind" : "IdRef", "quantifier" : "?", "name" : "Hit Kind" }
|
|
||||||
],
|
|
||||||
"capabilities" : [ "ShaderInvocationReorderEXT" ],
|
|
||||||
"version" : "None"
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
From 53b334f4a5f18fb1f2d367baeba8b43e2eb0b62b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthew Moulton <30711895+mmoult@users.noreply.github.com>
|
|
||||||
Date: Wed, 29 Apr 2026 22:25:01 +0000
|
|
||||||
Subject: [PATCH 05/26] Reserve some tokens for Samsung (#586)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/spir-v.xml | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
|
|
||||||
index 15eeb4d..3b3cfb3 100644
|
|
||||||
--- a/include/spirv/spir-v.xml
|
|
||||||
+++ b/include/spirv/spir-v.xml
|
|
||||||
@@ -179,13 +179,14 @@
|
|
||||||
<ids type="enumerant" start="6784" end="6911" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
|
|
||||||
<ids type="enumerant" start="6912" end="6975" vendor="Valve" comment="Contact michael.blumenkrantz@gmail.com"/>
|
|
||||||
<ids type="enumerant" start="6976" end="7039" vendor="Broadcom" comment="Contact gleese@broadcom.com"/>
|
|
||||||
+ <ids type="enumerant" start="7040" end="7103" vendor="Samsung" comment="Contact r.potter@samsung.com"/>
|
|
||||||
<!-- Enumerants to reserve for future use. To get a block, allocate
|
|
||||||
multiples of 64 starting at the lowest available point in this
|
|
||||||
block and add a corresponding <ids> tag immediately above. Make
|
|
||||||
sure to fill in the vendor attribute, and preferably add a contact
|
|
||||||
person/address in a comment attribute. -->
|
|
||||||
<!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
|
|
||||||
- <ids type="enumerant" start="7040" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
|
|
||||||
+ <ids type="enumerant" start="7104" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
|
|
||||||
<!-- End reservations of enumerants -->
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
-74
@@ -1,74 +0,0 @@
|
|||||||
From 126038020c2bd47efaa942ccc364ca5353ffccde Mon Sep 17 00:00:00 2001
|
|
||||||
From: Arseniy Obolenskiy <gooddoog@student.su>
|
|
||||||
Date: Thu, 30 Apr 2026 22:51:58 +0200
|
|
||||||
Subject: [PATCH 06/26] Fix OpCompositeConstructContinuedINTEL operands (#587)
|
|
||||||
|
|
||||||
* Fix OpCompositeConstructContinuedINTEL operands
|
|
||||||
|
|
||||||
Remove IdResultType and IdResult from OpCompositeConstructContinuedINTEL
|
|
||||||
|
|
||||||
This instruction is a continuation that supplies additional constituents to a preceding OpCompositeConstruct and does not produce its own result
|
|
||||||
|
|
||||||
* Update headers
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 2 --
|
|
||||||
include/spirv/unified1/spirv.h | 2 +-
|
|
||||||
include/spirv/unified1/spirv.hpp | 2 +-
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 2 +-
|
|
||||||
4 files changed, 3 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index c7e3cc3..2ca9fe4 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -11223,8 +11223,6 @@
|
|
||||||
"class" : "Composite",
|
|
||||||
"opcode" : 6096,
|
|
||||||
"operands" : [
|
|
||||||
- { "kind" : "IdResultType" },
|
|
||||||
- { "kind" : "IdResult" },
|
|
||||||
{ "kind" : "IdRef", "quantifier" : "*", "name" : "Constituents" }
|
|
||||||
],
|
|
||||||
"capabilities" : [ "LongCompositesINTEL" ],
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index ea4fb66..169cb06 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -3489,7 +3489,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|
||||||
case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
- case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case SpvOpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 3a61c4d..c159586 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -3485,7 +3485,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
- case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index a3c8b1c..189dbbc 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -3485,7 +3485,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
- case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case Op::OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
From 1f2dd1627ae782fa999b6ed86514c6a905438e3c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Spencer Fricke <115671160+spencer-lunarg@users.noreply.github.com>
|
|
||||||
Date: Tue, 5 May 2026 12:29:58 -0400
|
|
||||||
Subject: [PATCH 07/26] Update spirv.core.grammar.json revision (#593)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 2ca9fe4..bd716cb 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -11,7 +11,7 @@
|
|
||||||
"magic_number" : "0x07230203",
|
|
||||||
"major_version" : 1,
|
|
||||||
"minor_version" : 6,
|
|
||||||
- "revision" : 4,
|
|
||||||
+ "revision" : 7,
|
|
||||||
"instruction_printing_class" : [
|
|
||||||
{
|
|
||||||
"tag" : "@exclude"
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
From 58006c901d1d5c37dece6b6610e9af87fa951375 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
||||||
Date: Thu, 7 May 2026 21:05:26 -0400
|
|
||||||
Subject: [PATCH 08/26] Reserve ImageOperand 17 for Google (#589)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/spir-v.xml | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
|
|
||||||
index 3b3cfb3..69a2c2a 100644
|
|
||||||
--- a/include/spirv/spir-v.xml
|
|
||||||
+++ b/include/spirv/spir-v.xml
|
|
||||||
@@ -290,7 +290,8 @@
|
|
||||||
<!-- Reserved image operand bits -->
|
|
||||||
<ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
|
|
||||||
<ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact pmistry@nvidia.com"/>
|
|
||||||
- <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
|
|
||||||
+ <ids type="ImageOperand" start="17" end="17" vendor="Google" comment="Contact syoussefi@google.com"/>
|
|
||||||
+ <ids type="ImageOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/>
|
|
||||||
<ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>
|
|
||||||
|
|
||||||
</registry>
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
-88
@@ -1,88 +0,0 @@
|
|||||||
From 98c842bd561ac67c5ff98d599c8c960ba9edb7fd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Arseniy Obolenskiy <gooddoog@student.su>
|
|
||||||
Date: Mon, 11 May 2026 13:11:51 +0200
|
|
||||||
Subject: [PATCH 09/26] Fix OpReadPipeBlockingINTEL/OpWritePipeBlockingINTEL
|
|
||||||
operands (#588)
|
|
||||||
|
|
||||||
Per the SPV_INTEL_blocking_pipes spec, these instructions do not produce a result, but have Pipe and Pointer id arguments instead
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 8 ++++----
|
|
||||||
include/spirv/unified1/spirv.h | 4 ++--
|
|
||||||
include/spirv/unified1/spirv.hpp | 4 ++--
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 4 ++--
|
|
||||||
4 files changed, 10 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index bd716cb..d8d36df 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -10803,8 +10803,8 @@
|
|
||||||
"aliases" : [ "OpReadPipeBlockingINTEL" ],
|
|
||||||
"opcode" : 5946,
|
|
||||||
"operands" : [
|
|
||||||
- { "kind" : "IdResultType" },
|
|
||||||
- { "kind" : "IdResult" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Pipe" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Pointer" },
|
|
||||||
{ "kind" : "IdRef", "name" : "Packet Size" },
|
|
||||||
{ "kind" : "IdRef", "name" : "Packet Alignment" }
|
|
||||||
],
|
|
||||||
@@ -10817,8 +10817,8 @@
|
|
||||||
"aliases" : [ "OpWritePipeBlockingINTEL" ],
|
|
||||||
"opcode" : 5947,
|
|
||||||
"operands" : [
|
|
||||||
- { "kind" : "IdResultType" },
|
|
||||||
- { "kind" : "IdResult" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Pipe" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Pointer" },
|
|
||||||
{ "kind" : "IdRef", "name" : "Packet Size" },
|
|
||||||
{ "kind" : "IdRef", "name" : "Packet Alignment" }
|
|
||||||
],
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 169cb06..1759d89 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -3464,8 +3464,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|
||||||
case SpvOpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case SpvOpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case SpvOpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case SpvOpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case SpvOpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case SpvOpFPGARegALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index c159586..e6cc26c 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -3460,8 +3460,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case OpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case OpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case OpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case OpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case OpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpFPGARegALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index 189dbbc..c841190 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -3460,8 +3460,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case Op::OpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case Op::OpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case Op::OpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
+ case Op::OpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case Op::OpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case Op::OpFPGARegALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,283 +0,0 @@
|
|||||||
From 5c50cbd25a40f8b60e44a2ccc2f1ba3c9e0d0299 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dmitry Sidorov <dsidorov@amd.com>
|
|
||||||
Date: Wed, 13 May 2026 15:01:58 +0200
|
|
||||||
Subject: [PATCH 10/26] Add SPV_AMD_weak_linkage extension (#583)
|
|
||||||
|
|
||||||
Spec is available here KhronosGroup/SPIRV-Registry#401
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 2 ++
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 13 +++++++++++++
|
|
||||||
include/spirv/unified1/spirv.cs | 2 ++
|
|
||||||
include/spirv/unified1/spirv.h | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.hpp | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.json | 4 +++-
|
|
||||||
include/spirv/unified1/spirv.lua | 2 ++
|
|
||||||
include/spirv/unified1/spirv.py | 2 ++
|
|
||||||
include/spirv/unified1/spv.d | 2 ++
|
|
||||||
10 files changed, 38 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index efd329f..8d0bc34 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -485,6 +485,7 @@ namespace Spv
|
|
||||||
Export = 0,
|
|
||||||
Import = 1,
|
|
||||||
LinkOnceODR = 2,
|
|
||||||
+ WeakAMD = 3,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1238,6 +1239,7 @@ namespace Spv
|
|
||||||
DescriptorHeapEXT = 5128,
|
|
||||||
ConstantDataKHR = 5146,
|
|
||||||
PoisonFreezeKHR = 5156,
|
|
||||||
+ WeakLinkageAMD = 5181,
|
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
|
||||||
GeometryShaderPassthroughNV = 5251,
|
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index d8d36df..c84dc2d 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -14595,6 +14595,12 @@
|
|
||||||
"capabilities" : [ "Linkage" ],
|
|
||||||
"extensions" : [ "SPV_KHR_linkonce_odr" ],
|
|
||||||
"version" : "None"
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "WeakAMD",
|
|
||||||
+ "value" : 3,
|
|
||||||
+ "capabilities" : [ "WeakLinkageAMD" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
@@ -17744,6 +17750,13 @@
|
|
||||||
"provisional" : true,
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "WeakLinkageAMD",
|
|
||||||
+ "value" : 5181,
|
|
||||||
+ "capabilities" : [ "Linkage" ],
|
|
||||||
+ "extensions" : [ "SPV_AMD_weak_linkage" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "SampleMaskOverrideCoverageNV",
|
|
||||||
"value" : 5249,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 248e593..b0a8f1e 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -484,6 +484,7 @@ namespace Spv
|
|
||||||
Export = 0,
|
|
||||||
Import = 1,
|
|
||||||
LinkOnceODR = 2,
|
|
||||||
+ WeakAMD = 3,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1237,6 +1238,7 @@ namespace Spv
|
|
||||||
DescriptorHeapEXT = 5128,
|
|
||||||
ConstantDataKHR = 5146,
|
|
||||||
PoisonFreezeKHR = 5156,
|
|
||||||
+ WeakLinkageAMD = 5181,
|
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
|
||||||
GeometryShaderPassthroughNV = 5251,
|
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 1759d89..4f76b90 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -475,6 +475,7 @@ typedef enum SpvLinkageType_ {
|
|
||||||
SpvLinkageTypeExport = 0,
|
|
||||||
SpvLinkageTypeImport = 1,
|
|
||||||
SpvLinkageTypeLinkOnceODR = 2,
|
|
||||||
+ SpvLinkageTypeWeakAMD = 3,
|
|
||||||
SpvLinkageTypeMax = 0x7fffffff,
|
|
||||||
} SpvLinkageType;
|
|
||||||
|
|
||||||
@@ -1208,6 +1209,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityDescriptorHeapEXT = 5128,
|
|
||||||
SpvCapabilityConstantDataKHR = 5146,
|
|
||||||
SpvCapabilityPoisonFreezeKHR = 5156,
|
|
||||||
+ SpvCapabilityWeakLinkageAMD = 5181,
|
|
||||||
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
|
|
||||||
SpvCapabilityGeometryShaderPassthroughNV = 5251,
|
|
||||||
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
|
|
||||||
@@ -3893,6 +3895,7 @@ inline const char* SpvLinkageTypeToString(SpvLinkageType value) {
|
|
||||||
case SpvLinkageTypeExport: return "Export";
|
|
||||||
case SpvLinkageTypeImport: return "Import";
|
|
||||||
case SpvLinkageTypeLinkOnceODR: return "LinkOnceODR";
|
|
||||||
+ case SpvLinkageTypeWeakAMD: return "WeakAMD";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4385,6 +4388,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilityDescriptorHeapEXT: return "DescriptorHeapEXT";
|
|
||||||
case SpvCapabilityConstantDataKHR: return "ConstantDataKHR";
|
|
||||||
case SpvCapabilityPoisonFreezeKHR: return "PoisonFreezeKHR";
|
|
||||||
+ case SpvCapabilityWeakLinkageAMD: return "WeakLinkageAMD";
|
|
||||||
case SpvCapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
|
|
||||||
case SpvCapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
|
|
||||||
case SpvCapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index e6cc26c..fd64eb7 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -471,6 +471,7 @@ enum LinkageType {
|
|
||||||
LinkageTypeExport = 0,
|
|
||||||
LinkageTypeImport = 1,
|
|
||||||
LinkageTypeLinkOnceODR = 2,
|
|
||||||
+ LinkageTypeWeakAMD = 3,
|
|
||||||
LinkageTypeMax = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1204,6 +1205,7 @@ enum Capability {
|
|
||||||
CapabilityDescriptorHeapEXT = 5128,
|
|
||||||
CapabilityConstantDataKHR = 5146,
|
|
||||||
CapabilityPoisonFreezeKHR = 5156,
|
|
||||||
+ CapabilityWeakLinkageAMD = 5181,
|
|
||||||
CapabilitySampleMaskOverrideCoverageNV = 5249,
|
|
||||||
CapabilityGeometryShaderPassthroughNV = 5251,
|
|
||||||
CapabilityShaderViewportIndexLayerEXT = 5254,
|
|
||||||
@@ -3889,6 +3891,7 @@ inline const char* LinkageTypeToString(LinkageType value) {
|
|
||||||
case LinkageTypeExport: return "Export";
|
|
||||||
case LinkageTypeImport: return "Import";
|
|
||||||
case LinkageTypeLinkOnceODR: return "LinkOnceODR";
|
|
||||||
+ case LinkageTypeWeakAMD: return "WeakAMD";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4381,6 +4384,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilityDescriptorHeapEXT: return "DescriptorHeapEXT";
|
|
||||||
case CapabilityConstantDataKHR: return "ConstantDataKHR";
|
|
||||||
case CapabilityPoisonFreezeKHR: return "PoisonFreezeKHR";
|
|
||||||
+ case CapabilityWeakLinkageAMD: return "WeakLinkageAMD";
|
|
||||||
case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
|
|
||||||
case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
|
|
||||||
case CapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index c841190..4e626c9 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -471,6 +471,7 @@ enum class LinkageType : unsigned {
|
|
||||||
Export = 0,
|
|
||||||
Import = 1,
|
|
||||||
LinkOnceODR = 2,
|
|
||||||
+ WeakAMD = 3,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1204,6 +1205,7 @@ enum class Capability : unsigned {
|
|
||||||
DescriptorHeapEXT = 5128,
|
|
||||||
ConstantDataKHR = 5146,
|
|
||||||
PoisonFreezeKHR = 5156,
|
|
||||||
+ WeakLinkageAMD = 5181,
|
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
|
||||||
GeometryShaderPassthroughNV = 5251,
|
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
|
||||||
@@ -3889,6 +3891,7 @@ inline const char* LinkageTypeToString(LinkageType value) {
|
|
||||||
case LinkageType::Export: return "Export";
|
|
||||||
case LinkageType::Import: return "Import";
|
|
||||||
case LinkageType::LinkOnceODR: return "LinkOnceODR";
|
|
||||||
+ case LinkageType::WeakAMD: return "WeakAMD";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4381,6 +4384,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::DescriptorHeapEXT: return "DescriptorHeapEXT";
|
|
||||||
case Capability::ConstantDataKHR: return "ConstantDataKHR";
|
|
||||||
case Capability::PoisonFreezeKHR: return "PoisonFreezeKHR";
|
|
||||||
+ case Capability::WeakLinkageAMD: return "WeakLinkageAMD";
|
|
||||||
case Capability::SampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
|
|
||||||
case Capability::GeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
|
|
||||||
case Capability::ShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index 88f2605..135663c 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -484,7 +484,8 @@
|
|
||||||
{
|
|
||||||
"Export": 0,
|
|
||||||
"Import": 1,
|
|
||||||
- "LinkOnceODR": 2
|
|
||||||
+ "LinkOnceODR": 2,
|
|
||||||
+ "WeakAMD": 3
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
@@ -1170,6 +1171,7 @@
|
|
||||||
"DescriptorHeapEXT": 5128,
|
|
||||||
"ConstantDataKHR": 5146,
|
|
||||||
"PoisonFreezeKHR": 5156,
|
|
||||||
+ "WeakLinkageAMD": 5181,
|
|
||||||
"SampleMaskOverrideCoverageNV": 5249,
|
|
||||||
"GeometryShaderPassthroughNV": 5251,
|
|
||||||
"ShaderViewportIndexLayerEXT": 5254,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index db1bfd5..8cbe093 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -462,6 +462,7 @@ spv = {
|
|
||||||
Export = 0,
|
|
||||||
Import = 1,
|
|
||||||
LinkOnceODR = 2,
|
|
||||||
+ WeakAMD = 3,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
},
|
|
||||||
|
|
||||||
@@ -1195,6 +1196,7 @@ spv = {
|
|
||||||
DescriptorHeapEXT = 5128,
|
|
||||||
ConstantDataKHR = 5146,
|
|
||||||
PoisonFreezeKHR = 5156,
|
|
||||||
+ WeakLinkageAMD = 5181,
|
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
|
||||||
GeometryShaderPassthroughNV = 5251,
|
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index 976e23b..bb65ae9 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -447,6 +447,7 @@ spv = {
|
|
||||||
'Export' : 0,
|
|
||||||
'Import' : 1,
|
|
||||||
'LinkOnceODR' : 2,
|
|
||||||
+ 'WeakAMD' : 3,
|
|
||||||
},
|
|
||||||
|
|
||||||
'AccessQualifier' : {
|
|
||||||
@@ -1166,6 +1167,7 @@ spv = {
|
|
||||||
'DescriptorHeapEXT' : 5128,
|
|
||||||
'ConstantDataKHR' : 5146,
|
|
||||||
'PoisonFreezeKHR' : 5156,
|
|
||||||
+ 'WeakLinkageAMD' : 5181,
|
|
||||||
'SampleMaskOverrideCoverageNV' : 5249,
|
|
||||||
'GeometryShaderPassthroughNV' : 5251,
|
|
||||||
'ShaderViewportIndexLayerEXT' : 5254,
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index a9093d6..8d31fee 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -487,6 +487,7 @@ enum LinkageType : uint
|
|
||||||
Export = 0,
|
|
||||||
Import = 1,
|
|
||||||
LinkOnceODR = 2,
|
|
||||||
+ WeakAMD = 3,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1240,6 +1241,7 @@ enum Capability : uint
|
|
||||||
DescriptorHeapEXT = 5128,
|
|
||||||
ConstantDataKHR = 5146,
|
|
||||||
PoisonFreezeKHR = 5156,
|
|
||||||
+ WeakLinkageAMD = 5181,
|
|
||||||
SampleMaskOverrideCoverageNV = 5249,
|
|
||||||
GeometryShaderPassthroughNV = 5251,
|
|
||||||
ShaderViewportIndexLayerEXT = 5254,
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,520 +0,0 @@
|
|||||||
From 62d3e8314d2c4f26de24ca508bca2070f3d254aa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Spencer Fricke <115671160+spencer-lunarg@users.noreply.github.com>
|
|
||||||
Date: Wed, 13 May 2026 11:47:28 -0400
|
|
||||||
Subject: [PATCH 11/26] Add SPV_KHR_opacity_micromap (#599)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 5 ++++
|
|
||||||
.../spirv/unified1/spirv.core.grammar.json | 26 ++++++++++++++++---
|
|
||||||
include/spirv/unified1/spirv.cs | 5 ++++
|
|
||||||
include/spirv/unified1/spirv.h | 7 +++++
|
|
||||||
include/spirv/unified1/spirv.hpp | 7 +++++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 7 +++++
|
|
||||||
include/spirv/unified1/spirv.json | 6 ++++-
|
|
||||||
include/spirv/unified1/spirv.lua | 5 ++++
|
|
||||||
include/spirv/unified1/spirv.py | 5 ++++
|
|
||||||
include/spirv/unified1/spv.d | 5 ++++
|
|
||||||
10 files changed, 73 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index 8d0bc34..a512a3e 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -206,6 +206,7 @@ namespace Spv
|
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
|
||||||
MaximallyReconvergesKHR = 6023,
|
|
||||||
FPFastMathDefault = 6028,
|
|
||||||
+ OpacityMicromapIdKHR = 6031,
|
|
||||||
StreamingInterfaceINTEL = 6154,
|
|
||||||
RegisterMapInterfaceINTEL = 6160,
|
|
||||||
NamedBarrierCountINTEL = 6417,
|
|
||||||
@@ -1304,6 +1305,7 @@ namespace Spv
|
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
|
||||||
DisplacementMicromapNV = 5380,
|
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
|
||||||
+ RayTracingOpacityMicromapKHR = 5381,
|
|
||||||
ShaderInvocationReorderNV = 5383,
|
|
||||||
ShaderInvocationReorderEXT = 5388,
|
|
||||||
BindlessTextureNV = 5390,
|
|
||||||
@@ -1398,6 +1400,7 @@ namespace Spv
|
|
||||||
GroupNonUniformRotateKHR = 6026,
|
|
||||||
FloatControls2 = 6029,
|
|
||||||
FMAKHR = 6030,
|
|
||||||
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
|
|
||||||
AtomicFloat32AddEXT = 6033,
|
|
||||||
AtomicFloat64AddEXT = 6034,
|
|
||||||
LongCompositesINTEL = 6089,
|
|
||||||
@@ -1459,6 +1462,7 @@ namespace Spv
|
|
||||||
SkipTrianglesKHR = 8,
|
|
||||||
SkipAABBsKHR = 9,
|
|
||||||
ForceOpacityMicromap2StateEXT = 10,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 10,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1477,6 +1481,7 @@ namespace Spv
|
|
||||||
SkipTrianglesKHR = 0x00000100,
|
|
||||||
SkipAABBsKHR = 0x00000200,
|
|
||||||
ForceOpacityMicromap2StateEXT = 0x00000400,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 0x00000400,
|
|
||||||
}
|
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum RayQueryIntersection
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index c84dc2d..32a350a 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -12549,9 +12549,10 @@
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "enumerant" : "ForceOpacityMicromap2StateEXT",
|
|
||||||
+ "enumerant" : "ForceOpacityMicromap2StateKHR",
|
|
||||||
+ "aliases" : [ "ForceOpacityMicromap2StateEXT" ],
|
|
||||||
"value" : "0x0400",
|
|
||||||
- "capabilities" : [ "RayTracingOpacityMicromapEXT" ],
|
|
||||||
+ "capabilities" : [ "RayTracingOpacityMicromapKHR" ],
|
|
||||||
"version" : "None"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -13576,6 +13577,15 @@
|
|
||||||
"capabilities" : [ "FloatControls2" ],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "OpacityMicromapIdKHR",
|
|
||||||
+ "value" : 6031,
|
|
||||||
+ "capabilities" : [ "RayTracingOpacityMicromapExecutionModeKHR" ],
|
|
||||||
+ "parameters" : [
|
|
||||||
+ { "kind" : "IdRef", "name" : "Enable" }
|
|
||||||
+ ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "StreamingInterfaceINTEL",
|
|
||||||
"value" : 6154,
|
|
||||||
@@ -18062,10 +18072,11 @@
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "enumerant" : "RayTracingOpacityMicromapEXT",
|
|
||||||
+ "enumerant" : "RayTracingOpacityMicromapKHR",
|
|
||||||
+ "aliases" : ["RayTracingOpacityMicromapEXT"],
|
|
||||||
"value" : 5381,
|
|
||||||
"capabilities" : [ "Shader" ],
|
|
||||||
- "extensions" : [ "SPV_EXT_opacity_micromap" ],
|
|
||||||
+ "extensions" : ["SPV_KHR_opacity_micromap", "SPV_EXT_opacity_micromap"],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
@@ -18542,6 +18553,13 @@
|
|
||||||
"extensions" : [ "SPV_KHR_fma" ],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "RayTracingOpacityMicromapExecutionModeKHR",
|
|
||||||
+ "value" : 6032,
|
|
||||||
+ "capabilities" : [ "Shader" ],
|
|
||||||
+ "extensions" : [ "SPV_KHR_opacity_micromap" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "AtomicFloat32AddEXT",
|
|
||||||
"value" : 6033,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index b0a8f1e..4d33ffa 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -205,6 +205,7 @@ namespace Spv
|
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
|
||||||
MaximallyReconvergesKHR = 6023,
|
|
||||||
FPFastMathDefault = 6028,
|
|
||||||
+ OpacityMicromapIdKHR = 6031,
|
|
||||||
StreamingInterfaceINTEL = 6154,
|
|
||||||
RegisterMapInterfaceINTEL = 6160,
|
|
||||||
NamedBarrierCountINTEL = 6417,
|
|
||||||
@@ -1303,6 +1304,7 @@ namespace Spv
|
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
|
||||||
DisplacementMicromapNV = 5380,
|
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
|
||||||
+ RayTracingOpacityMicromapKHR = 5381,
|
|
||||||
ShaderInvocationReorderNV = 5383,
|
|
||||||
ShaderInvocationReorderEXT = 5388,
|
|
||||||
BindlessTextureNV = 5390,
|
|
||||||
@@ -1397,6 +1399,7 @@ namespace Spv
|
|
||||||
GroupNonUniformRotateKHR = 6026,
|
|
||||||
FloatControls2 = 6029,
|
|
||||||
FMAKHR = 6030,
|
|
||||||
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
|
|
||||||
AtomicFloat32AddEXT = 6033,
|
|
||||||
AtomicFloat64AddEXT = 6034,
|
|
||||||
LongCompositesINTEL = 6089,
|
|
||||||
@@ -1458,6 +1461,7 @@ namespace Spv
|
|
||||||
SkipTrianglesKHR = 8,
|
|
||||||
SkipAABBsKHR = 9,
|
|
||||||
ForceOpacityMicromap2StateEXT = 10,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 10,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1476,6 +1480,7 @@ namespace Spv
|
|
||||||
SkipTrianglesKHR = 0x00000100,
|
|
||||||
SkipAABBsKHR = 0x00000200,
|
|
||||||
ForceOpacityMicromap2StateEXT = 0x00000400,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 0x00000400,
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum RayQueryIntersection
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 4f76b90..d9dedc0 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -209,6 +209,7 @@ typedef enum SpvExecutionMode_ {
|
|
||||||
SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
|
||||||
SpvExecutionModeMaximallyReconvergesKHR = 6023,
|
|
||||||
SpvExecutionModeFPFastMathDefault = 6028,
|
|
||||||
+ SpvExecutionModeOpacityMicromapIdKHR = 6031,
|
|
||||||
SpvExecutionModeStreamingInterfaceINTEL = 6154,
|
|
||||||
SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
|
|
||||||
SpvExecutionModeNamedBarrierCountINTEL = 6417,
|
|
||||||
@@ -1274,6 +1275,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
|
|
||||||
SpvCapabilityDisplacementMicromapNV = 5380,
|
|
||||||
SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
|
|
||||||
+ SpvCapabilityRayTracingOpacityMicromapKHR = 5381,
|
|
||||||
SpvCapabilityShaderInvocationReorderNV = 5383,
|
|
||||||
SpvCapabilityShaderInvocationReorderEXT = 5388,
|
|
||||||
SpvCapabilityBindlessTextureNV = 5390,
|
|
||||||
@@ -1368,6 +1370,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityGroupNonUniformRotateKHR = 6026,
|
|
||||||
SpvCapabilityFloatControls2 = 6029,
|
|
||||||
SpvCapabilityFMAKHR = 6030,
|
|
||||||
+ SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR = 6032,
|
|
||||||
SpvCapabilityAtomicFloat32AddEXT = 6033,
|
|
||||||
SpvCapabilityAtomicFloat64AddEXT = 6034,
|
|
||||||
SpvCapabilityLongCompositesINTEL = 6089,
|
|
||||||
@@ -1428,6 +1431,7 @@ typedef enum SpvRayFlagsShift_ {
|
|
||||||
SpvRayFlagsSkipTrianglesKHRShift = 8,
|
|
||||||
SpvRayFlagsSkipAABBsKHRShift = 9,
|
|
||||||
SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
|
|
||||||
+ SpvRayFlagsForceOpacityMicromap2StateKHRShift = 10,
|
|
||||||
SpvRayFlagsMax = 0x7fffffff,
|
|
||||||
} SpvRayFlagsShift;
|
|
||||||
|
|
||||||
@@ -1445,6 +1449,7 @@ typedef enum SpvRayFlagsMask_ {
|
|
||||||
SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
|
|
||||||
SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
|
|
||||||
SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
|
|
||||||
+ SpvRayFlagsForceOpacityMicromap2StateKHRMask = 0x00000400,
|
|
||||||
} SpvRayFlagsMask;
|
|
||||||
|
|
||||||
typedef enum SpvRayQueryIntersection_ {
|
|
||||||
@@ -3696,6 +3701,7 @@ inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
|
|
||||||
case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
|
|
||||||
case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
|
|
||||||
case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault";
|
|
||||||
+ case SpvExecutionModeOpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
|
|
||||||
case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
|
|
||||||
case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
|
|
||||||
case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
|
|
||||||
@@ -4505,6 +4511,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
|
|
||||||
case SpvCapabilityFloatControls2: return "FloatControls2";
|
|
||||||
case SpvCapabilityFMAKHR: return "FMAKHR";
|
|
||||||
+ case SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
|
|
||||||
case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
|
|
||||||
case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
|
|
||||||
case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index fd64eb7..d0a1606 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -205,6 +205,7 @@ enum ExecutionMode {
|
|
||||||
ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
|
||||||
ExecutionModeMaximallyReconvergesKHR = 6023,
|
|
||||||
ExecutionModeFPFastMathDefault = 6028,
|
|
||||||
+ ExecutionModeOpacityMicromapIdKHR = 6031,
|
|
||||||
ExecutionModeStreamingInterfaceINTEL = 6154,
|
|
||||||
ExecutionModeRegisterMapInterfaceINTEL = 6160,
|
|
||||||
ExecutionModeNamedBarrierCountINTEL = 6417,
|
|
||||||
@@ -1270,6 +1271,7 @@ enum Capability {
|
|
||||||
CapabilityDemoteToHelperInvocationEXT = 5379,
|
|
||||||
CapabilityDisplacementMicromapNV = 5380,
|
|
||||||
CapabilityRayTracingOpacityMicromapEXT = 5381,
|
|
||||||
+ CapabilityRayTracingOpacityMicromapKHR = 5381,
|
|
||||||
CapabilityShaderInvocationReorderNV = 5383,
|
|
||||||
CapabilityShaderInvocationReorderEXT = 5388,
|
|
||||||
CapabilityBindlessTextureNV = 5390,
|
|
||||||
@@ -1364,6 +1366,7 @@ enum Capability {
|
|
||||||
CapabilityGroupNonUniformRotateKHR = 6026,
|
|
||||||
CapabilityFloatControls2 = 6029,
|
|
||||||
CapabilityFMAKHR = 6030,
|
|
||||||
+ CapabilityRayTracingOpacityMicromapExecutionModeKHR = 6032,
|
|
||||||
CapabilityAtomicFloat32AddEXT = 6033,
|
|
||||||
CapabilityAtomicFloat64AddEXT = 6034,
|
|
||||||
CapabilityLongCompositesINTEL = 6089,
|
|
||||||
@@ -1424,6 +1427,7 @@ enum RayFlagsShift {
|
|
||||||
RayFlagsSkipTrianglesKHRShift = 8,
|
|
||||||
RayFlagsSkipAABBsKHRShift = 9,
|
|
||||||
RayFlagsForceOpacityMicromap2StateEXTShift = 10,
|
|
||||||
+ RayFlagsForceOpacityMicromap2StateKHRShift = 10,
|
|
||||||
RayFlagsMax = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1441,6 +1445,7 @@ enum RayFlagsMask {
|
|
||||||
RayFlagsSkipTrianglesKHRMask = 0x00000100,
|
|
||||||
RayFlagsSkipAABBsKHRMask = 0x00000200,
|
|
||||||
RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
|
|
||||||
+ RayFlagsForceOpacityMicromap2StateKHRMask = 0x00000400,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum RayQueryIntersection {
|
|
||||||
@@ -3692,6 +3697,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) {
|
|
||||||
case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
|
|
||||||
case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
|
|
||||||
case ExecutionModeFPFastMathDefault: return "FPFastMathDefault";
|
|
||||||
+ case ExecutionModeOpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
|
|
||||||
case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
|
|
||||||
case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
|
|
||||||
case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
|
|
||||||
@@ -4501,6 +4507,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
|
|
||||||
case CapabilityFloatControls2: return "FloatControls2";
|
|
||||||
case CapabilityFMAKHR: return "FMAKHR";
|
|
||||||
+ case CapabilityRayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
|
|
||||||
case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
|
|
||||||
case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
|
|
||||||
case CapabilityLongCompositesINTEL: return "LongCompositesINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index 4e626c9..fb5d724 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -205,6 +205,7 @@ enum class ExecutionMode : unsigned {
|
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
|
||||||
MaximallyReconvergesKHR = 6023,
|
|
||||||
FPFastMathDefault = 6028,
|
|
||||||
+ OpacityMicromapIdKHR = 6031,
|
|
||||||
StreamingInterfaceINTEL = 6154,
|
|
||||||
RegisterMapInterfaceINTEL = 6160,
|
|
||||||
NamedBarrierCountINTEL = 6417,
|
|
||||||
@@ -1270,6 +1271,7 @@ enum class Capability : unsigned {
|
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
|
||||||
DisplacementMicromapNV = 5380,
|
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
|
||||||
+ RayTracingOpacityMicromapKHR = 5381,
|
|
||||||
ShaderInvocationReorderNV = 5383,
|
|
||||||
ShaderInvocationReorderEXT = 5388,
|
|
||||||
BindlessTextureNV = 5390,
|
|
||||||
@@ -1364,6 +1366,7 @@ enum class Capability : unsigned {
|
|
||||||
GroupNonUniformRotateKHR = 6026,
|
|
||||||
FloatControls2 = 6029,
|
|
||||||
FMAKHR = 6030,
|
|
||||||
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
|
|
||||||
AtomicFloat32AddEXT = 6033,
|
|
||||||
AtomicFloat64AddEXT = 6034,
|
|
||||||
LongCompositesINTEL = 6089,
|
|
||||||
@@ -1424,6 +1427,7 @@ enum class RayFlagsShift : unsigned {
|
|
||||||
SkipTrianglesKHR = 8,
|
|
||||||
SkipAABBsKHR = 9,
|
|
||||||
ForceOpacityMicromap2StateEXT = 10,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 10,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1441,6 +1445,7 @@ enum class RayFlagsMask : unsigned {
|
|
||||||
SkipTrianglesKHR = 0x00000100,
|
|
||||||
SkipAABBsKHR = 0x00000200,
|
|
||||||
ForceOpacityMicromap2StateEXT = 0x00000400,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 0x00000400,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class RayQueryIntersection : unsigned {
|
|
||||||
@@ -3692,6 +3697,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) {
|
|
||||||
case ExecutionMode::SchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
|
|
||||||
case ExecutionMode::MaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
|
|
||||||
case ExecutionMode::FPFastMathDefault: return "FPFastMathDefault";
|
|
||||||
+ case ExecutionMode::OpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
|
|
||||||
case ExecutionMode::StreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
|
|
||||||
case ExecutionMode::RegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
|
|
||||||
case ExecutionMode::NamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
|
|
||||||
@@ -4501,6 +4507,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::GroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
|
|
||||||
case Capability::FloatControls2: return "FloatControls2";
|
|
||||||
case Capability::FMAKHR: return "FMAKHR";
|
|
||||||
+ case Capability::RayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
|
|
||||||
case Capability::AtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
|
|
||||||
case Capability::AtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
|
|
||||||
case Capability::LongCompositesINTEL: return "LongCompositesINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index 135663c..af571b5 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -224,6 +224,7 @@
|
|
||||||
"SchedulerTargetFmaxMhzINTEL": 5903,
|
|
||||||
"MaximallyReconvergesKHR": 6023,
|
|
||||||
"FPFastMathDefault": 6028,
|
|
||||||
+ "OpacityMicromapIdKHR": 6031,
|
|
||||||
"StreamingInterfaceINTEL": 6154,
|
|
||||||
"RegisterMapInterfaceINTEL": 6160,
|
|
||||||
"NamedBarrierCountINTEL": 6417,
|
|
||||||
@@ -1236,6 +1237,7 @@
|
|
||||||
"DemoteToHelperInvocationEXT": 5379,
|
|
||||||
"DisplacementMicromapNV": 5380,
|
|
||||||
"RayTracingOpacityMicromapEXT": 5381,
|
|
||||||
+ "RayTracingOpacityMicromapKHR": 5381,
|
|
||||||
"ShaderInvocationReorderNV": 5383,
|
|
||||||
"ShaderInvocationReorderEXT": 5388,
|
|
||||||
"BindlessTextureNV": 5390,
|
|
||||||
@@ -1330,6 +1332,7 @@
|
|
||||||
"GroupNonUniformRotateKHR": 6026,
|
|
||||||
"FloatControls2": 6029,
|
|
||||||
"FMAKHR": 6030,
|
|
||||||
+ "RayTracingOpacityMicromapExecutionModeKHR": 6032,
|
|
||||||
"AtomicFloat32AddEXT": 6033,
|
|
||||||
"AtomicFloat64AddEXT": 6034,
|
|
||||||
"LongCompositesINTEL": 6089,
|
|
||||||
@@ -1392,7 +1395,8 @@
|
|
||||||
"SkipBuiltinPrimitivesNV": 8,
|
|
||||||
"SkipTrianglesKHR": 8,
|
|
||||||
"SkipAABBsKHR": 9,
|
|
||||||
- "ForceOpacityMicromap2StateEXT": 10
|
|
||||||
+ "ForceOpacityMicromap2StateEXT": 10,
|
|
||||||
+ "ForceOpacityMicromap2StateKHR": 10
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index 8cbe093..f3da312 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -196,6 +196,7 @@ spv = {
|
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
|
||||||
MaximallyReconvergesKHR = 6023,
|
|
||||||
FPFastMathDefault = 6028,
|
|
||||||
+ OpacityMicromapIdKHR = 6031,
|
|
||||||
StreamingInterfaceINTEL = 6154,
|
|
||||||
RegisterMapInterfaceINTEL = 6160,
|
|
||||||
NamedBarrierCountINTEL = 6417,
|
|
||||||
@@ -1261,6 +1262,7 @@ spv = {
|
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
|
||||||
DisplacementMicromapNV = 5380,
|
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
|
||||||
+ RayTracingOpacityMicromapKHR = 5381,
|
|
||||||
ShaderInvocationReorderNV = 5383,
|
|
||||||
ShaderInvocationReorderEXT = 5388,
|
|
||||||
BindlessTextureNV = 5390,
|
|
||||||
@@ -1355,6 +1357,7 @@ spv = {
|
|
||||||
GroupNonUniformRotateKHR = 6026,
|
|
||||||
FloatControls2 = 6029,
|
|
||||||
FMAKHR = 6030,
|
|
||||||
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
|
|
||||||
AtomicFloat32AddEXT = 6033,
|
|
||||||
AtomicFloat64AddEXT = 6034,
|
|
||||||
LongCompositesINTEL = 6089,
|
|
||||||
@@ -1415,6 +1418,7 @@ spv = {
|
|
||||||
SkipTrianglesKHR = 8,
|
|
||||||
SkipAABBsKHR = 9,
|
|
||||||
ForceOpacityMicromap2StateEXT = 10,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 10,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
},
|
|
||||||
|
|
||||||
@@ -1432,6 +1436,7 @@ spv = {
|
|
||||||
SkipTrianglesKHR = 0x00000100,
|
|
||||||
SkipAABBsKHR = 0x00000200,
|
|
||||||
ForceOpacityMicromap2StateEXT = 0x00000400,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 0x00000400,
|
|
||||||
},
|
|
||||||
|
|
||||||
RayQueryIntersection = {
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index bb65ae9..88e5cbc 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -192,6 +192,7 @@ spv = {
|
|
||||||
'SchedulerTargetFmaxMhzINTEL' : 5903,
|
|
||||||
'MaximallyReconvergesKHR' : 6023,
|
|
||||||
'FPFastMathDefault' : 6028,
|
|
||||||
+ 'OpacityMicromapIdKHR' : 6031,
|
|
||||||
'StreamingInterfaceINTEL' : 6154,
|
|
||||||
'RegisterMapInterfaceINTEL' : 6160,
|
|
||||||
'NamedBarrierCountINTEL' : 6417,
|
|
||||||
@@ -1232,6 +1233,7 @@ spv = {
|
|
||||||
'DemoteToHelperInvocationEXT' : 5379,
|
|
||||||
'DisplacementMicromapNV' : 5380,
|
|
||||||
'RayTracingOpacityMicromapEXT' : 5381,
|
|
||||||
+ 'RayTracingOpacityMicromapKHR' : 5381,
|
|
||||||
'ShaderInvocationReorderNV' : 5383,
|
|
||||||
'ShaderInvocationReorderEXT' : 5388,
|
|
||||||
'BindlessTextureNV' : 5390,
|
|
||||||
@@ -1326,6 +1328,7 @@ spv = {
|
|
||||||
'GroupNonUniformRotateKHR' : 6026,
|
|
||||||
'FloatControls2' : 6029,
|
|
||||||
'FMAKHR' : 6030,
|
|
||||||
+ 'RayTracingOpacityMicromapExecutionModeKHR' : 6032,
|
|
||||||
'AtomicFloat32AddEXT' : 6033,
|
|
||||||
'AtomicFloat64AddEXT' : 6034,
|
|
||||||
'LongCompositesINTEL' : 6089,
|
|
||||||
@@ -1385,6 +1388,7 @@ spv = {
|
|
||||||
'SkipTrianglesKHR' : 8,
|
|
||||||
'SkipAABBsKHR' : 9,
|
|
||||||
'ForceOpacityMicromap2StateEXT' : 10,
|
|
||||||
+ 'ForceOpacityMicromap2StateKHR' : 10,
|
|
||||||
},
|
|
||||||
|
|
||||||
'RayFlagsMask' : {
|
|
||||||
@@ -1401,6 +1405,7 @@ spv = {
|
|
||||||
'SkipTrianglesKHR' : 0x00000100,
|
|
||||||
'SkipAABBsKHR' : 0x00000200,
|
|
||||||
'ForceOpacityMicromap2StateEXT' : 0x00000400,
|
|
||||||
+ 'ForceOpacityMicromap2StateKHR' : 0x00000400,
|
|
||||||
},
|
|
||||||
|
|
||||||
'RayQueryIntersection' : {
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index 8d31fee..aab392c 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -208,6 +208,7 @@ enum ExecutionMode : uint
|
|
||||||
SchedulerTargetFmaxMhzINTEL = 5903,
|
|
||||||
MaximallyReconvergesKHR = 6023,
|
|
||||||
FPFastMathDefault = 6028,
|
|
||||||
+ OpacityMicromapIdKHR = 6031,
|
|
||||||
StreamingInterfaceINTEL = 6154,
|
|
||||||
RegisterMapInterfaceINTEL = 6160,
|
|
||||||
NamedBarrierCountINTEL = 6417,
|
|
||||||
@@ -1306,6 +1307,7 @@ enum Capability : uint
|
|
||||||
DemoteToHelperInvocationEXT = 5379,
|
|
||||||
DisplacementMicromapNV = 5380,
|
|
||||||
RayTracingOpacityMicromapEXT = 5381,
|
|
||||||
+ RayTracingOpacityMicromapKHR = 5381,
|
|
||||||
ShaderInvocationReorderNV = 5383,
|
|
||||||
ShaderInvocationReorderEXT = 5388,
|
|
||||||
BindlessTextureNV = 5390,
|
|
||||||
@@ -1400,6 +1402,7 @@ enum Capability : uint
|
|
||||||
GroupNonUniformRotateKHR = 6026,
|
|
||||||
FloatControls2 = 6029,
|
|
||||||
FMAKHR = 6030,
|
|
||||||
+ RayTracingOpacityMicromapExecutionModeKHR = 6032,
|
|
||||||
AtomicFloat32AddEXT = 6033,
|
|
||||||
AtomicFloat64AddEXT = 6034,
|
|
||||||
LongCompositesINTEL = 6089,
|
|
||||||
@@ -1461,6 +1464,7 @@ enum RayFlagsShift : uint
|
|
||||||
SkipTrianglesKHR = 8,
|
|
||||||
SkipAABBsKHR = 9,
|
|
||||||
ForceOpacityMicromap2StateEXT = 10,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 10,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1479,6 +1483,7 @@ enum RayFlagsMask : uint
|
|
||||||
SkipTrianglesKHR = 0x00000100,
|
|
||||||
SkipAABBsKHR = 0x00000200,
|
|
||||||
ForceOpacityMicromap2StateEXT = 0x00000400,
|
|
||||||
+ ForceOpacityMicromap2StateKHR = 0x00000400,
|
|
||||||
}
|
|
||||||
|
|
||||||
enum RayQueryIntersection : uint
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
-128
@@ -1,128 +0,0 @@
|
|||||||
From 3541d11cabd489bfa898ce2da631efab9870979b Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?K=C3=A9vin=20Petit?= <kevin.petit@arm.com>
|
|
||||||
Date: Wed, 13 May 2026 16:59:08 +0100
|
|
||||||
Subject: [PATCH 12/26] Add NonSemanticGraphDebugInfo instruction set (#591)
|
|
||||||
|
|
||||||
Change-Id: Ibd080a73abc630fbd2b3068f9c22ab8c0e01c806
|
|
||||||
|
|
||||||
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
|
|
||||||
---
|
|
||||||
BUILD.bazel | 6 ++++
|
|
||||||
.../unified1/NonSemanticGraphDebugInfo.h | 28 +++++++++++++++
|
|
||||||
...t.nonsemantic.graph.debuginfo.grammar.json | 35 +++++++++++++++++++
|
|
||||||
tools/buildHeaders/bin/makeExtinstHeaders.py | 1 +
|
|
||||||
4 files changed, 70 insertions(+)
|
|
||||||
create mode 100644 include/spirv/unified1/NonSemanticGraphDebugInfo.h
|
|
||||||
create mode 100644 include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
|
|
||||||
|
|
||||||
diff --git a/BUILD.bazel b/BUILD.bazel
|
|
||||||
index badf2c1..61ef7e8 100644
|
|
||||||
--- a/BUILD.bazel
|
|
||||||
+++ b/BUILD.bazel
|
|
||||||
@@ -138,6 +138,11 @@ filegroup(
|
|
||||||
srcs = ["include/spirv/unified1/extinst.arm.motion-engine.100.grammar.json"],
|
|
||||||
)
|
|
||||||
|
|
||||||
+filegroup(
|
|
||||||
+ name = "spirv_ext_inst_non_semantic_graph_debuginfo_grammar_unified1",
|
|
||||||
+ srcs = ["include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json"],
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
cc_library(
|
|
||||||
name = "spirv_common_headers",
|
|
||||||
hdrs = [
|
|
||||||
@@ -152,6 +157,7 @@ cc_library(
|
|
||||||
"include/spirv/unified1/NonSemanticClspvReflection.h",
|
|
||||||
"include/spirv/unified1/NonSemanticDebugBreak.h",
|
|
||||||
"include/spirv/unified1/NonSemanticDebugPrintf.h",
|
|
||||||
+ "include/spirv/unified1/NonSemanticGraphDebugInfo.h",
|
|
||||||
"include/spirv/unified1/NonSemanticShaderDebugInfo.h",
|
|
||||||
"include/spirv/unified1/NonSemanticShaderDebugInfo100.h",
|
|
||||||
"include/spirv/unified1/NonSemanticVkspReflection.h",
|
|
||||||
diff --git a/include/spirv/unified1/NonSemanticGraphDebugInfo.h b/include/spirv/unified1/NonSemanticGraphDebugInfo.h
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..3046842
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/spirv/unified1/NonSemanticGraphDebugInfo.h
|
|
||||||
@@ -0,0 +1,28 @@
|
|
||||||
+// SPDX-FileCopyrightText: 2022-2026 Arm Ltd.
|
|
||||||
+// SPDX-License-Identifier: MIT
|
|
||||||
+
|
|
||||||
+#ifndef SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
|
|
||||||
+#define SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
|
|
||||||
+
|
|
||||||
+#ifdef __cplusplus
|
|
||||||
+extern "C" {
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+enum {
|
|
||||||
+ NonSemanticGraphDebugInfoRevision = 1,
|
|
||||||
+ NonSemanticGraphDebugInfoRevision_BitWidthPadding = 0x7fffffff
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+enum NonSemanticGraphDebugInfoInstructions {
|
|
||||||
+ NonSemanticGraphDebugInfoDebugGraph = 1,
|
|
||||||
+ NonSemanticGraphDebugInfoDebugOperation = 2,
|
|
||||||
+ NonSemanticGraphDebugInfoDebugTensor = 3,
|
|
||||||
+ NonSemanticGraphDebugInfoInstructionsMax = 0x7fffffff
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef __cplusplus
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#endif // SPIRV_UNIFIED1_NonSemanticGraphDebugInfo_H_
|
|
||||||
diff --git a/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json b/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..b740775
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json
|
|
||||||
@@ -0,0 +1,35 @@
|
|
||||||
+{
|
|
||||||
+ "copyright": [
|
|
||||||
+ "SPDX-FileCopyrightText: 2022-2026 Arm Ltd.",
|
|
||||||
+ "SPDX-License-Identifier: MIT"
|
|
||||||
+ ],
|
|
||||||
+ "revision" : 1,
|
|
||||||
+ "instructions" : [
|
|
||||||
+ {
|
|
||||||
+ "opname" : "DebugGraph",
|
|
||||||
+ "opcode" : 1,
|
|
||||||
+ "operands" : [
|
|
||||||
+ { "kind" : "IdRef", "name" : "Graph" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Name" }
|
|
||||||
+ ]
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "opname" : "DebugOperation",
|
|
||||||
+ "opcode" : 2,
|
|
||||||
+ "operands" : [
|
|
||||||
+ { "kind" : "IdRef", "name" : "DebugGraph" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Name" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Instructions", "quantifier" : "*" }
|
|
||||||
+ ]
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "opname" : "DebugTensor",
|
|
||||||
+ "opcode" : 3,
|
|
||||||
+ "operands" : [
|
|
||||||
+ { "kind" : "IdRef", "name" : "Tensor" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Name" },
|
|
||||||
+ { "kind" : "IdRef", "name" : "Index", "quantifier" : "?" }
|
|
||||||
+ ]
|
|
||||||
+ }
|
|
||||||
+ ]
|
|
||||||
+}
|
|
||||||
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
|
|
||||||
index e5fd640..1c9fbfd 100755
|
|
||||||
--- a/tools/buildHeaders/bin/makeExtinstHeaders.py
|
|
||||||
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
|
|
||||||
@@ -31,3 +31,4 @@ mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json
|
|
||||||
mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.grammar.json')
|
|
||||||
mk_extinst('TOSA', 'extinst.tosa.001000.1.grammar.json', 'TOSA.001000.1')
|
|
||||||
mk_extinst('ArmMotionEngine', 'extinst.arm.motion-engine.100.grammar.json', 'ArmMotionEngine.100')
|
|
||||||
+mk_extinst('NonSemanticGraphDebugInfo', 'extinst.nonsemantic.graph.debuginfo.grammar.json')
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
-282
@@ -1,282 +0,0 @@
|
|||||||
From 82dfca37143878c848d8df1f9e4d746f65e6827e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Faith Ekstrand <faith.ekstrand@collabora.com>
|
|
||||||
Date: Wed, 13 May 2026 12:00:42 -0400
|
|
||||||
Subject: [PATCH 13/26] Revert "Add SPV_MESA_fragment_coverage_mask enumerants
|
|
||||||
(#580)" (#598)
|
|
||||||
|
|
||||||
This reverts commit 157de8e260e9362225c0ce9a6675d034968abe15.
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 2 --
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 13 -------------
|
|
||||||
include/spirv/unified1/spirv.cs | 2 --
|
|
||||||
include/spirv/unified1/spirv.h | 4 ----
|
|
||||||
include/spirv/unified1/spirv.hpp | 4 ----
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 4 ----
|
|
||||||
include/spirv/unified1/spirv.json | 2 --
|
|
||||||
include/spirv/unified1/spirv.lua | 2 --
|
|
||||||
include/spirv/unified1/spirv.py | 2 --
|
|
||||||
include/spirv/unified1/spv.d | 2 --
|
|
||||||
10 files changed, 37 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index a512a3e..119ea89 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -759,7 +759,6 @@ namespace Spv
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
- FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1172,7 +1171,6 @@ namespace Spv
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
- FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 32a350a..0f1b083 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -16185,12 +16185,6 @@
|
|
||||||
"capabilities" : [ "Shader" ],
|
|
||||||
"version": "1.0"
|
|
||||||
},
|
|
||||||
- {
|
|
||||||
- "enumerant" : "FragmentCoverageMaskMESA",
|
|
||||||
- "value" : 4096,
|
|
||||||
- "capabilities" : [ "FragmentCoverageMESA" ],
|
|
||||||
- "version" : "None"
|
|
||||||
- },
|
|
||||||
{
|
|
||||||
"enumerant" : "CoreIDARM",
|
|
||||||
"value" : 4160,
|
|
||||||
@@ -17330,13 +17324,6 @@
|
|
||||||
"value" : 71,
|
|
||||||
"version" : "1.6"
|
|
||||||
},
|
|
||||||
- {
|
|
||||||
- "enumerant" : "FragmentCoverageMESA",
|
|
||||||
- "value" : 4097,
|
|
||||||
- "capabilities" : [ "Shader" ],
|
|
||||||
- "extensions" : [ "SPV_MESA_fragment_coverage_mask" ],
|
|
||||||
- "version" : "None"
|
|
||||||
- },
|
|
||||||
{
|
|
||||||
"enumerant" : "CoreBuiltinsARM",
|
|
||||||
"value" : 4165,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 4d33ffa..7f66ede 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -758,7 +758,6 @@ namespace Spv
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
- FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1171,7 +1170,6 @@ namespace Spv
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
- FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index d9dedc0..99b983c 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -745,7 +745,6 @@ typedef enum SpvBuiltIn_ {
|
|
||||||
SpvBuiltInSubgroupLocalInvocationId = 41,
|
|
||||||
SpvBuiltInVertexIndex = 42,
|
|
||||||
SpvBuiltInInstanceIndex = 43,
|
|
||||||
- SpvBuiltInFragmentCoverageMaskMESA = 4096,
|
|
||||||
SpvBuiltInCoreIDARM = 4160,
|
|
||||||
SpvBuiltInCoreCountARM = 4161,
|
|
||||||
SpvBuiltInCoreMaxIDARM = 4162,
|
|
||||||
@@ -1142,7 +1141,6 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityShaderLayer = 69,
|
|
||||||
SpvCapabilityShaderViewportIndex = 70,
|
|
||||||
SpvCapabilityUniformDecoration = 71,
|
|
||||||
- SpvCapabilityFragmentCoverageMESA = 4097,
|
|
||||||
SpvCapabilityCoreBuiltinsARM = 4165,
|
|
||||||
SpvCapabilityTileImageColorReadAccessEXT = 4166,
|
|
||||||
SpvCapabilityTileImageDepthReadAccessEXT = 4167,
|
|
||||||
@@ -4129,7 +4127,6 @@ inline const char* SpvBuiltInToString(SpvBuiltIn value) {
|
|
||||||
case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
|
|
||||||
case SpvBuiltInVertexIndex: return "VertexIndex";
|
|
||||||
case SpvBuiltInInstanceIndex: return "InstanceIndex";
|
|
||||||
- case SpvBuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
|
|
||||||
case SpvBuiltInCoreIDARM: return "CoreIDARM";
|
|
||||||
case SpvBuiltInCoreCountARM: return "CoreCountARM";
|
|
||||||
case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM";
|
|
||||||
@@ -4328,7 +4325,6 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilityShaderLayer: return "ShaderLayer";
|
|
||||||
case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex";
|
|
||||||
case SpvCapabilityUniformDecoration: return "UniformDecoration";
|
|
||||||
- case SpvCapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
|
|
||||||
case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
|
|
||||||
case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
|
|
||||||
case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index d0a1606..966be25 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -741,7 +741,6 @@ enum BuiltIn {
|
|
||||||
BuiltInSubgroupLocalInvocationId = 41,
|
|
||||||
BuiltInVertexIndex = 42,
|
|
||||||
BuiltInInstanceIndex = 43,
|
|
||||||
- BuiltInFragmentCoverageMaskMESA = 4096,
|
|
||||||
BuiltInCoreIDARM = 4160,
|
|
||||||
BuiltInCoreCountARM = 4161,
|
|
||||||
BuiltInCoreMaxIDARM = 4162,
|
|
||||||
@@ -1138,7 +1137,6 @@ enum Capability {
|
|
||||||
CapabilityShaderLayer = 69,
|
|
||||||
CapabilityShaderViewportIndex = 70,
|
|
||||||
CapabilityUniformDecoration = 71,
|
|
||||||
- CapabilityFragmentCoverageMESA = 4097,
|
|
||||||
CapabilityCoreBuiltinsARM = 4165,
|
|
||||||
CapabilityTileImageColorReadAccessEXT = 4166,
|
|
||||||
CapabilityTileImageDepthReadAccessEXT = 4167,
|
|
||||||
@@ -4125,7 +4123,6 @@ inline const char* BuiltInToString(BuiltIn value) {
|
|
||||||
case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
|
|
||||||
case BuiltInVertexIndex: return "VertexIndex";
|
|
||||||
case BuiltInInstanceIndex: return "InstanceIndex";
|
|
||||||
- case BuiltInFragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
|
|
||||||
case BuiltInCoreIDARM: return "CoreIDARM";
|
|
||||||
case BuiltInCoreCountARM: return "CoreCountARM";
|
|
||||||
case BuiltInCoreMaxIDARM: return "CoreMaxIDARM";
|
|
||||||
@@ -4324,7 +4321,6 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilityShaderLayer: return "ShaderLayer";
|
|
||||||
case CapabilityShaderViewportIndex: return "ShaderViewportIndex";
|
|
||||||
case CapabilityUniformDecoration: return "UniformDecoration";
|
|
||||||
- case CapabilityFragmentCoverageMESA: return "FragmentCoverageMESA";
|
|
||||||
case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
|
|
||||||
case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
|
|
||||||
case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index fb5d724..bdc4ac0 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -741,7 +741,6 @@ enum class BuiltIn : unsigned {
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
- FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1138,7 +1137,6 @@ enum class Capability : unsigned {
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
- FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
@@ -4125,7 +4123,6 @@ inline const char* BuiltInToString(BuiltIn value) {
|
|
||||||
case BuiltIn::SubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
|
|
||||||
case BuiltIn::VertexIndex: return "VertexIndex";
|
|
||||||
case BuiltIn::InstanceIndex: return "InstanceIndex";
|
|
||||||
- case BuiltIn::FragmentCoverageMaskMESA: return "FragmentCoverageMaskMESA";
|
|
||||||
case BuiltIn::CoreIDARM: return "CoreIDARM";
|
|
||||||
case BuiltIn::CoreCountARM: return "CoreCountARM";
|
|
||||||
case BuiltIn::CoreMaxIDARM: return "CoreMaxIDARM";
|
|
||||||
@@ -4324,7 +4321,6 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::ShaderLayer: return "ShaderLayer";
|
|
||||||
case Capability::ShaderViewportIndex: return "ShaderViewportIndex";
|
|
||||||
case Capability::UniformDecoration: return "UniformDecoration";
|
|
||||||
- case Capability::FragmentCoverageMESA: return "FragmentCoverageMESA";
|
|
||||||
case Capability::CoreBuiltinsARM: return "CoreBuiltinsARM";
|
|
||||||
case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
|
|
||||||
case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index af571b5..eb646f6 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -767,7 +767,6 @@
|
|
||||||
"SubgroupLocalInvocationId": 41,
|
|
||||||
"VertexIndex": 42,
|
|
||||||
"InstanceIndex": 43,
|
|
||||||
- "FragmentCoverageMaskMESA": 4096,
|
|
||||||
"CoreIDARM": 4160,
|
|
||||||
"CoreCountARM": 4161,
|
|
||||||
"CoreMaxIDARM": 4162,
|
|
||||||
@@ -1104,7 +1103,6 @@
|
|
||||||
"ShaderLayer": 69,
|
|
||||||
"ShaderViewportIndex": 70,
|
|
||||||
"UniformDecoration": 71,
|
|
||||||
- "FragmentCoverageMESA": 4097,
|
|
||||||
"CoreBuiltinsARM": 4165,
|
|
||||||
"TileImageColorReadAccessEXT": 4166,
|
|
||||||
"TileImageDepthReadAccessEXT": 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index f3da312..e425dd5 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -732,7 +732,6 @@ spv = {
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
- FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1129,7 +1128,6 @@ spv = {
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
- FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index 88e5cbc..a35941b 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -713,7 +713,6 @@ spv = {
|
|
||||||
'SubgroupLocalInvocationId' : 41,
|
|
||||||
'VertexIndex' : 42,
|
|
||||||
'InstanceIndex' : 43,
|
|
||||||
- 'FragmentCoverageMaskMESA' : 4096,
|
|
||||||
'CoreIDARM' : 4160,
|
|
||||||
'CoreCountARM' : 4161,
|
|
||||||
'CoreMaxIDARM' : 4162,
|
|
||||||
@@ -1100,7 +1099,6 @@ spv = {
|
|
||||||
'ShaderLayer' : 69,
|
|
||||||
'ShaderViewportIndex' : 70,
|
|
||||||
'UniformDecoration' : 71,
|
|
||||||
- 'FragmentCoverageMESA' : 4097,
|
|
||||||
'CoreBuiltinsARM' : 4165,
|
|
||||||
'TileImageColorReadAccessEXT' : 4166,
|
|
||||||
'TileImageDepthReadAccessEXT' : 4167,
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index aab392c..8fa24b9 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -761,7 +761,6 @@ enum BuiltIn : uint
|
|
||||||
SubgroupLocalInvocationId = 41,
|
|
||||||
VertexIndex = 42,
|
|
||||||
InstanceIndex = 43,
|
|
||||||
- FragmentCoverageMaskMESA = 4096,
|
|
||||||
CoreIDARM = 4160,
|
|
||||||
CoreCountARM = 4161,
|
|
||||||
CoreMaxIDARM = 4162,
|
|
||||||
@@ -1174,7 +1173,6 @@ enum Capability : uint
|
|
||||||
ShaderLayer = 69,
|
|
||||||
ShaderViewportIndex = 70,
|
|
||||||
UniformDecoration = 71,
|
|
||||||
- FragmentCoverageMESA = 4097,
|
|
||||||
CoreBuiltinsARM = 4165,
|
|
||||||
TileImageColorReadAccessEXT = 4166,
|
|
||||||
TileImageDepthReadAccessEXT = 4167,
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,366 +0,0 @@
|
|||||||
From fe44b2002bf7871e2e92fc001bc9f6e09f92194f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ralph Potter <r.potter@samsung.com>
|
|
||||||
Date: Thu, 14 May 2026 14:30:23 +0100
|
|
||||||
Subject: [PATCH 14/26] SPV_EXT_split_barrier (#600)
|
|
||||||
|
|
||||||
* SPV_EXT_split_barrier
|
|
||||||
|
|
||||||
* Remove spurious capability
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 3 +++
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 15 +++++++++------
|
|
||||||
include/spirv/unified1/spirv.cs | 3 +++
|
|
||||||
include/spirv/unified1/spirv.h | 13 ++++++++-----
|
|
||||||
include/spirv/unified1/spirv.hpp | 13 ++++++++-----
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 13 ++++++++-----
|
|
||||||
include/spirv/unified1/spirv.json | 3 +++
|
|
||||||
include/spirv/unified1/spirv.lua | 3 +++
|
|
||||||
include/spirv/unified1/spirv.py | 3 +++
|
|
||||||
include/spirv/unified1/spv.d | 3 +++
|
|
||||||
10 files changed, 51 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index 119ea89..0ecf295 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -1407,6 +1407,7 @@ namespace Spv
|
|
||||||
AtomicFloat16AddEXT = 6095,
|
|
||||||
DebugInfoModuleINTEL = 6114,
|
|
||||||
BFloat16ConversionINTEL = 6115,
|
|
||||||
+ SplitBarrierEXT = 6141,
|
|
||||||
SplitBarrierINTEL = 6141,
|
|
||||||
ArithmeticFenceEXT = 6144,
|
|
||||||
FPGAClusterAttributesV2ALTERA = 6150,
|
|
||||||
@@ -2674,7 +2675,9 @@ namespace Spv
|
|
||||||
OpCompositeConstructContinuedINTEL = 6096,
|
|
||||||
OpConvertFToBF16INTEL = 6116,
|
|
||||||
OpConvertBF16ToFINTEL = 6117,
|
|
||||||
+ OpControlBarrierArriveEXT = 6142,
|
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
|
||||||
+ OpControlBarrierWaitEXT = 6143,
|
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
|
||||||
OpArithmeticFenceEXT = 6145,
|
|
||||||
OpTaskSequenceCreateALTERA = 6163,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 0f1b083..b2b665b 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -11253,27 +11253,29 @@
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "opname" : "OpControlBarrierArriveINTEL",
|
|
||||||
+ "opname" : "OpControlBarrierArriveEXT",
|
|
||||||
"class" : "Barrier",
|
|
||||||
+ "aliases" : [ "OpControlBarrierArriveINTEL" ],
|
|
||||||
"opcode" : 6142,
|
|
||||||
"operands" : [
|
|
||||||
{ "kind" : "IdScope", "name" : "Execution" },
|
|
||||||
{ "kind" : "IdScope", "name" : "Memory" },
|
|
||||||
{ "kind" : "IdMemorySemantics", "name" : "Semantics" }
|
|
||||||
],
|
|
||||||
- "capabilities" : [ "SplitBarrierINTEL" ],
|
|
||||||
+ "capabilities" : [ "SplitBarrierEXT" ],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "opname" : "OpControlBarrierWaitINTEL",
|
|
||||||
+ "opname" : "OpControlBarrierWaitEXT",
|
|
||||||
"class" : "Barrier",
|
|
||||||
+ "aliases" : [ "OpControlBarrierWaitINTEL" ],
|
|
||||||
"opcode" : 6143,
|
|
||||||
"operands" : [
|
|
||||||
{ "kind" : "IdScope", "name" : "Execution" },
|
|
||||||
{ "kind" : "IdScope", "name" : "Memory" },
|
|
||||||
{ "kind" : "IdMemorySemantics", "name" : "Semantics" }
|
|
||||||
],
|
|
||||||
- "capabilities" : [ "SplitBarrierINTEL" ],
|
|
||||||
+ "capabilities" : [ "SplitBarrierEXT" ],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
@@ -18591,9 +18593,10 @@
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "enumerant" : "SplitBarrierINTEL",
|
|
||||||
+ "enumerant" : "SplitBarrierEXT",
|
|
||||||
+ "aliases" : [ "SplitBarrierINTEL" ],
|
|
||||||
"value" : 6141,
|
|
||||||
- "extensions" : [ "SPV_INTEL_split_barrier" ],
|
|
||||||
+ "extensions" : [ "SPV_EXT_split_barrier", "SPV_INTEL_split_barrier" ],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 7f66ede..06845bb 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -1406,6 +1406,7 @@ namespace Spv
|
|
||||||
AtomicFloat16AddEXT = 6095,
|
|
||||||
DebugInfoModuleINTEL = 6114,
|
|
||||||
BFloat16ConversionINTEL = 6115,
|
|
||||||
+ SplitBarrierEXT = 6141,
|
|
||||||
SplitBarrierINTEL = 6141,
|
|
||||||
ArithmeticFenceEXT = 6144,
|
|
||||||
FPGAClusterAttributesV2ALTERA = 6150,
|
|
||||||
@@ -2673,7 +2674,9 @@ namespace Spv
|
|
||||||
OpCompositeConstructContinuedINTEL = 6096,
|
|
||||||
OpConvertFToBF16INTEL = 6116,
|
|
||||||
OpConvertBF16ToFINTEL = 6117,
|
|
||||||
+ OpControlBarrierArriveEXT = 6142,
|
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
|
||||||
+ OpControlBarrierWaitEXT = 6143,
|
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
|
||||||
OpArithmeticFenceEXT = 6145,
|
|
||||||
OpTaskSequenceCreateALTERA = 6163,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 99b983c..964f5aa 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -1377,6 +1377,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityAtomicFloat16AddEXT = 6095,
|
|
||||||
SpvCapabilityDebugInfoModuleINTEL = 6114,
|
|
||||||
SpvCapabilityBFloat16ConversionINTEL = 6115,
|
|
||||||
+ SpvCapabilitySplitBarrierEXT = 6141,
|
|
||||||
SpvCapabilitySplitBarrierINTEL = 6141,
|
|
||||||
SpvCapabilityArithmeticFenceEXT = 6144,
|
|
||||||
SpvCapabilityFPGAClusterAttributesV2ALTERA = 6150,
|
|
||||||
@@ -2608,7 +2609,9 @@ typedef enum SpvOp_ {
|
|
||||||
SpvOpCompositeConstructContinuedINTEL = 6096,
|
|
||||||
SpvOpConvertFToBF16INTEL = 6116,
|
|
||||||
SpvOpConvertBF16ToFINTEL = 6117,
|
|
||||||
+ SpvOpControlBarrierArriveEXT = 6142,
|
|
||||||
SpvOpControlBarrierArriveINTEL = 6142,
|
|
||||||
+ SpvOpControlBarrierWaitEXT = 6143,
|
|
||||||
SpvOpControlBarrierWaitINTEL = 6143,
|
|
||||||
SpvOpArithmeticFenceEXT = 6145,
|
|
||||||
SpvOpTaskSequenceCreateALTERA = 6163,
|
|
||||||
@@ -3497,8 +3500,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|
||||||
case SpvOpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
- case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case SpvOpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case SpvOpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case SpvOpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case SpvOpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
@@ -4515,7 +4518,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
|
|
||||||
case SpvCapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
|
|
||||||
case SpvCapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
|
|
||||||
- case SpvCapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
|
|
||||||
+ case SpvCapabilitySplitBarrierEXT: return "SplitBarrierEXT";
|
|
||||||
case SpvCapabilityArithmeticFenceEXT: return "ArithmeticFenceEXT";
|
|
||||||
case SpvCapabilityFPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
|
|
||||||
case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
|
|
||||||
@@ -5570,8 +5573,8 @@ inline const char* SpvOpToString(SpvOp value) {
|
|
||||||
case SpvOpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
|
|
||||||
case SpvOpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
|
|
||||||
case SpvOpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
|
|
||||||
- case SpvOpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
|
|
||||||
- case SpvOpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
|
|
||||||
+ case SpvOpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT";
|
|
||||||
+ case SpvOpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT";
|
|
||||||
case SpvOpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
|
|
||||||
case SpvOpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
|
|
||||||
case SpvOpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 966be25..655a79c 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -1373,6 +1373,7 @@ enum Capability {
|
|
||||||
CapabilityAtomicFloat16AddEXT = 6095,
|
|
||||||
CapabilityDebugInfoModuleINTEL = 6114,
|
|
||||||
CapabilityBFloat16ConversionINTEL = 6115,
|
|
||||||
+ CapabilitySplitBarrierEXT = 6141,
|
|
||||||
CapabilitySplitBarrierINTEL = 6141,
|
|
||||||
CapabilityArithmeticFenceEXT = 6144,
|
|
||||||
CapabilityFPGAClusterAttributesV2ALTERA = 6150,
|
|
||||||
@@ -2604,7 +2605,9 @@ enum Op {
|
|
||||||
OpCompositeConstructContinuedINTEL = 6096,
|
|
||||||
OpConvertFToBF16INTEL = 6116,
|
|
||||||
OpConvertBF16ToFINTEL = 6117,
|
|
||||||
+ OpControlBarrierArriveEXT = 6142,
|
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
|
||||||
+ OpControlBarrierWaitEXT = 6143,
|
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
|
||||||
OpArithmeticFenceEXT = 6145,
|
|
||||||
OpTaskSequenceCreateALTERA = 6163,
|
|
||||||
@@ -3493,8 +3496,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
- case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case OpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case OpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case OpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case OpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
@@ -4511,7 +4514,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
|
|
||||||
case CapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
|
|
||||||
case CapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
|
|
||||||
- case CapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
|
|
||||||
+ case CapabilitySplitBarrierEXT: return "SplitBarrierEXT";
|
|
||||||
case CapabilityArithmeticFenceEXT: return "ArithmeticFenceEXT";
|
|
||||||
case CapabilityFPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
|
|
||||||
case CapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
|
|
||||||
@@ -5566,8 +5569,8 @@ inline const char* OpToString(Op value) {
|
|
||||||
case OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
|
|
||||||
case OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
|
|
||||||
case OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
|
|
||||||
- case OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
|
|
||||||
- case OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
|
|
||||||
+ case OpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT";
|
|
||||||
+ case OpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT";
|
|
||||||
case OpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
|
|
||||||
case OpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
|
|
||||||
case OpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index bdc4ac0..270b33f 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -1373,6 +1373,7 @@ enum class Capability : unsigned {
|
|
||||||
AtomicFloat16AddEXT = 6095,
|
|
||||||
DebugInfoModuleINTEL = 6114,
|
|
||||||
BFloat16ConversionINTEL = 6115,
|
|
||||||
+ SplitBarrierEXT = 6141,
|
|
||||||
SplitBarrierINTEL = 6141,
|
|
||||||
ArithmeticFenceEXT = 6144,
|
|
||||||
FPGAClusterAttributesV2ALTERA = 6150,
|
|
||||||
@@ -2604,7 +2605,9 @@ enum class Op : unsigned {
|
|
||||||
OpCompositeConstructContinuedINTEL = 6096,
|
|
||||||
OpConvertFToBF16INTEL = 6116,
|
|
||||||
OpConvertBF16ToFINTEL = 6117,
|
|
||||||
+ OpControlBarrierArriveEXT = 6142,
|
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
|
||||||
+ OpControlBarrierWaitEXT = 6143,
|
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
|
||||||
OpArithmeticFenceEXT = 6145,
|
|
||||||
OpTaskSequenceCreateALTERA = 6163,
|
|
||||||
@@ -3493,8 +3496,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
||||||
case Op::OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
|
|
||||||
- case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
- case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case Op::OpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
+ case Op::OpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break;
|
|
||||||
case Op::OpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
|
|
||||||
case Op::OpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
|
|
||||||
@@ -4511,7 +4514,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::AtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
|
|
||||||
case Capability::DebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
|
|
||||||
case Capability::BFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
|
|
||||||
- case Capability::SplitBarrierINTEL: return "SplitBarrierINTEL";
|
|
||||||
+ case Capability::SplitBarrierEXT: return "SplitBarrierEXT";
|
|
||||||
case Capability::ArithmeticFenceEXT: return "ArithmeticFenceEXT";
|
|
||||||
case Capability::FPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
|
|
||||||
case Capability::FPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
|
|
||||||
@@ -5566,8 +5569,8 @@ inline const char* OpToString(Op value) {
|
|
||||||
case Op::OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
|
|
||||||
case Op::OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
|
|
||||||
case Op::OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
|
|
||||||
- case Op::OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
|
|
||||||
- case Op::OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
|
|
||||||
+ case Op::OpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT";
|
|
||||||
+ case Op::OpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT";
|
|
||||||
case Op::OpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
|
|
||||||
case Op::OpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
|
|
||||||
case Op::OpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index eb646f6..5a21f07 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -1339,6 +1339,7 @@
|
|
||||||
"AtomicFloat16AddEXT": 6095,
|
|
||||||
"DebugInfoModuleINTEL": 6114,
|
|
||||||
"BFloat16ConversionINTEL": 6115,
|
|
||||||
+ "SplitBarrierEXT": 6141,
|
|
||||||
"SplitBarrierINTEL": 6141,
|
|
||||||
"ArithmeticFenceEXT": 6144,
|
|
||||||
"FPGAClusterAttributesV2ALTERA": 6150,
|
|
||||||
@@ -2574,7 +2575,9 @@
|
|
||||||
"OpCompositeConstructContinuedINTEL": 6096,
|
|
||||||
"OpConvertFToBF16INTEL": 6116,
|
|
||||||
"OpConvertBF16ToFINTEL": 6117,
|
|
||||||
+ "OpControlBarrierArriveEXT": 6142,
|
|
||||||
"OpControlBarrierArriveINTEL": 6142,
|
|
||||||
+ "OpControlBarrierWaitEXT": 6143,
|
|
||||||
"OpControlBarrierWaitINTEL": 6143,
|
|
||||||
"OpArithmeticFenceEXT": 6145,
|
|
||||||
"OpTaskSequenceCreateALTERA": 6163,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index e425dd5..64b0a1f 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -1364,6 +1364,7 @@ spv = {
|
|
||||||
AtomicFloat16AddEXT = 6095,
|
|
||||||
DebugInfoModuleINTEL = 6114,
|
|
||||||
BFloat16ConversionINTEL = 6115,
|
|
||||||
+ SplitBarrierEXT = 6141,
|
|
||||||
SplitBarrierINTEL = 6141,
|
|
||||||
ArithmeticFenceEXT = 6144,
|
|
||||||
FPGAClusterAttributesV2ALTERA = 6150,
|
|
||||||
@@ -2595,7 +2596,9 @@ spv = {
|
|
||||||
OpCompositeConstructContinuedINTEL = 6096,
|
|
||||||
OpConvertFToBF16INTEL = 6116,
|
|
||||||
OpConvertBF16ToFINTEL = 6117,
|
|
||||||
+ OpControlBarrierArriveEXT = 6142,
|
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
|
||||||
+ OpControlBarrierWaitEXT = 6143,
|
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
|
||||||
OpArithmeticFenceEXT = 6145,
|
|
||||||
OpTaskSequenceCreateALTERA = 6163,
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index a35941b..5f3bae6 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -1335,6 +1335,7 @@ spv = {
|
|
||||||
'AtomicFloat16AddEXT' : 6095,
|
|
||||||
'DebugInfoModuleINTEL' : 6114,
|
|
||||||
'BFloat16ConversionINTEL' : 6115,
|
|
||||||
+ 'SplitBarrierEXT' : 6141,
|
|
||||||
'SplitBarrierINTEL' : 6141,
|
|
||||||
'ArithmeticFenceEXT' : 6144,
|
|
||||||
'FPGAClusterAttributesV2ALTERA' : 6150,
|
|
||||||
@@ -2538,7 +2539,9 @@ spv = {
|
|
||||||
'OpCompositeConstructContinuedINTEL' : 6096,
|
|
||||||
'OpConvertFToBF16INTEL' : 6116,
|
|
||||||
'OpConvertBF16ToFINTEL' : 6117,
|
|
||||||
+ 'OpControlBarrierArriveEXT' : 6142,
|
|
||||||
'OpControlBarrierArriveINTEL' : 6142,
|
|
||||||
+ 'OpControlBarrierWaitEXT' : 6143,
|
|
||||||
'OpControlBarrierWaitINTEL' : 6143,
|
|
||||||
'OpArithmeticFenceEXT' : 6145,
|
|
||||||
'OpTaskSequenceCreateALTERA' : 6163,
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index 8fa24b9..4e4e3dc 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -1409,6 +1409,7 @@ enum Capability : uint
|
|
||||||
AtomicFloat16AddEXT = 6095,
|
|
||||||
DebugInfoModuleINTEL = 6114,
|
|
||||||
BFloat16ConversionINTEL = 6115,
|
|
||||||
+ SplitBarrierEXT = 6141,
|
|
||||||
SplitBarrierINTEL = 6141,
|
|
||||||
ArithmeticFenceEXT = 6144,
|
|
||||||
FPGAClusterAttributesV2ALTERA = 6150,
|
|
||||||
@@ -2676,7 +2677,9 @@ enum Op : uint
|
|
||||||
OpCompositeConstructContinuedINTEL = 6096,
|
|
||||||
OpConvertFToBF16INTEL = 6116,
|
|
||||||
OpConvertBF16ToFINTEL = 6117,
|
|
||||||
+ OpControlBarrierArriveEXT = 6142,
|
|
||||||
OpControlBarrierArriveINTEL = 6142,
|
|
||||||
+ OpControlBarrierWaitEXT = 6143,
|
|
||||||
OpControlBarrierWaitINTEL = 6143,
|
|
||||||
OpArithmeticFenceEXT = 6145,
|
|
||||||
OpTaskSequenceCreateALTERA = 6163,
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,324 +0,0 @@
|
|||||||
From aaffbc59b41bf8faea671b0d1c6b34a584c45171 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jeff Bolz <jbolz@nvidia.com>
|
|
||||||
Date: Fri, 15 May 2026 10:51:25 -0500
|
|
||||||
Subject: [PATCH 15/26] SPV_NV_cooperative_matrix_decode_vector (#601)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/unified1/spirv.bf | 3 +++
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 16 ++++++++++++++++
|
|
||||||
include/spirv/unified1/spirv.cs | 3 +++
|
|
||||||
include/spirv/unified1/spirv.h | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.hpp | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 4 ++++
|
|
||||||
include/spirv/unified1/spirv.json | 4 +++-
|
|
||||||
include/spirv/unified1/spirv.lua | 3 +++
|
|
||||||
include/spirv/unified1/spirv.py | 3 +++
|
|
||||||
include/spirv/unified1/spv.d | 3 +++
|
|
||||||
10 files changed, 46 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index 0ecf295..9497023 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -1325,6 +1325,7 @@ namespace Spv
|
|
||||||
CooperativeVectorTrainingNV = 5435,
|
|
||||||
RayTracingClusterAccelerationStructureNV = 5437,
|
|
||||||
TensorAddressingNV = 5439,
|
|
||||||
+ CooperativeMatrixDecodeVectorNV = 5447,
|
|
||||||
SubgroupShuffleINTEL = 5568,
|
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
|
||||||
@@ -1633,6 +1634,7 @@ namespace Spv
|
|
||||||
{
|
|
||||||
TensorView = 0,
|
|
||||||
DecodeFunc = 1,
|
|
||||||
+ DecodeVectorFunc = 2,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1641,6 +1643,7 @@ namespace Spv
|
|
||||||
MaskNone = 0,
|
|
||||||
TensorView = 0x00000001,
|
|
||||||
DecodeFunc = 0x00000002,
|
|
||||||
+ DecodeVectorFunc = 0x00000004,
|
|
||||||
}
|
|
||||||
|
|
||||||
[AllowDuplicates, CRepr] public enum TensorOperandsShift
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index b2b665b..4f96982 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -18200,6 +18200,13 @@
|
|
||||||
"extensions" : [ "SPV_NV_tensor_addressing" ],
|
|
||||||
"version" : "None"
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "CooperativeMatrixDecodeVectorNV",
|
|
||||||
+ "value" : 5447,
|
|
||||||
+ "capabilities" : [ "CooperativeMatrixBlockLoadsNV" ],
|
|
||||||
+ "extensions" : [ "SPV_NV_cooperative_matrix_decode_vector" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"enumerant" : "SubgroupShuffleINTEL",
|
|
||||||
"value" : 5568,
|
|
||||||
@@ -19035,6 +19042,15 @@
|
|
||||||
],
|
|
||||||
"capabilities" : [ "CooperativeMatrixBlockLoadsNV" ],
|
|
||||||
"version" : "None"
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "DecodeVectorFunc",
|
|
||||||
+ "value" : "0x0004",
|
|
||||||
+ "parameters" : [
|
|
||||||
+ { "kind" : "IdRef" }
|
|
||||||
+ ],
|
|
||||||
+ "capabilities" : [ "CooperativeMatrixDecodeVectorNV" ],
|
|
||||||
+ "version" : "None"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 06845bb..7631bf2 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -1324,6 +1324,7 @@ namespace Spv
|
|
||||||
CooperativeVectorTrainingNV = 5435,
|
|
||||||
RayTracingClusterAccelerationStructureNV = 5437,
|
|
||||||
TensorAddressingNV = 5439,
|
|
||||||
+ CooperativeMatrixDecodeVectorNV = 5447,
|
|
||||||
SubgroupShuffleINTEL = 5568,
|
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
|
||||||
@@ -1632,6 +1633,7 @@ namespace Spv
|
|
||||||
{
|
|
||||||
TensorView = 0,
|
|
||||||
DecodeFunc = 1,
|
|
||||||
+ DecodeVectorFunc = 2,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1640,6 +1642,7 @@ namespace Spv
|
|
||||||
MaskNone = 0,
|
|
||||||
TensorView = 0x00000001,
|
|
||||||
DecodeFunc = 0x00000002,
|
|
||||||
+ DecodeVectorFunc = 0x00000004,
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum TensorOperandsShift
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 964f5aa..5ab265f 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -1295,6 +1295,7 @@ typedef enum SpvCapability_ {
|
|
||||||
SpvCapabilityCooperativeVectorTrainingNV = 5435,
|
|
||||||
SpvCapabilityRayTracingClusterAccelerationStructureNV = 5437,
|
|
||||||
SpvCapabilityTensorAddressingNV = 5439,
|
|
||||||
+ SpvCapabilityCooperativeMatrixDecodeVectorNV = 5447,
|
|
||||||
SpvCapabilitySubgroupShuffleINTEL = 5568,
|
|
||||||
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
|
|
||||||
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
|
|
||||||
@@ -1583,6 +1584,7 @@ typedef enum SpvTensorClampMode_ {
|
|
||||||
typedef enum SpvTensorAddressingOperandsShift_ {
|
|
||||||
SpvTensorAddressingOperandsTensorViewShift = 0,
|
|
||||||
SpvTensorAddressingOperandsDecodeFuncShift = 1,
|
|
||||||
+ SpvTensorAddressingOperandsDecodeVectorFuncShift = 2,
|
|
||||||
SpvTensorAddressingOperandsMax = 0x7fffffff,
|
|
||||||
} SpvTensorAddressingOperandsShift;
|
|
||||||
|
|
||||||
@@ -1590,6 +1592,7 @@ typedef enum SpvTensorAddressingOperandsMask_ {
|
|
||||||
SpvTensorAddressingOperandsMaskNone = 0,
|
|
||||||
SpvTensorAddressingOperandsTensorViewMask = 0x00000001,
|
|
||||||
SpvTensorAddressingOperandsDecodeFuncMask = 0x00000002,
|
|
||||||
+ SpvTensorAddressingOperandsDecodeVectorFuncMask = 0x00000004,
|
|
||||||
} SpvTensorAddressingOperandsMask;
|
|
||||||
|
|
||||||
typedef enum SpvTensorOperandsShift_ {
|
|
||||||
@@ -4457,6 +4460,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
||||||
case SpvCapabilityCooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
|
|
||||||
case SpvCapabilityRayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
|
|
||||||
case SpvCapabilityTensorAddressingNV: return "TensorAddressingNV";
|
|
||||||
+ case SpvCapabilityCooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV";
|
|
||||||
case SpvCapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
|
|
||||||
case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
|
|
||||||
case SpvCapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 655a79c..33b4a8b 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -1291,6 +1291,7 @@ enum Capability {
|
|
||||||
CapabilityCooperativeVectorTrainingNV = 5435,
|
|
||||||
CapabilityRayTracingClusterAccelerationStructureNV = 5437,
|
|
||||||
CapabilityTensorAddressingNV = 5439,
|
|
||||||
+ CapabilityCooperativeMatrixDecodeVectorNV = 5447,
|
|
||||||
CapabilitySubgroupShuffleINTEL = 5568,
|
|
||||||
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
|
||||||
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
|
||||||
@@ -1579,6 +1580,7 @@ enum TensorClampMode {
|
|
||||||
enum TensorAddressingOperandsShift {
|
|
||||||
TensorAddressingOperandsTensorViewShift = 0,
|
|
||||||
TensorAddressingOperandsDecodeFuncShift = 1,
|
|
||||||
+ TensorAddressingOperandsDecodeVectorFuncShift = 2,
|
|
||||||
TensorAddressingOperandsMax = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1586,6 +1588,7 @@ enum TensorAddressingOperandsMask {
|
|
||||||
TensorAddressingOperandsMaskNone = 0,
|
|
||||||
TensorAddressingOperandsTensorViewMask = 0x00000001,
|
|
||||||
TensorAddressingOperandsDecodeFuncMask = 0x00000002,
|
|
||||||
+ TensorAddressingOperandsDecodeVectorFuncMask = 0x00000004,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum TensorOperandsShift {
|
|
||||||
@@ -4453,6 +4456,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case CapabilityCooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
|
|
||||||
case CapabilityRayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
|
|
||||||
case CapabilityTensorAddressingNV: return "TensorAddressingNV";
|
|
||||||
+ case CapabilityCooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV";
|
|
||||||
case CapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
|
|
||||||
case CapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
|
|
||||||
case CapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index 270b33f..eb15ea2 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -1291,6 +1291,7 @@ enum class Capability : unsigned {
|
|
||||||
CooperativeVectorTrainingNV = 5435,
|
|
||||||
RayTracingClusterAccelerationStructureNV = 5437,
|
|
||||||
TensorAddressingNV = 5439,
|
|
||||||
+ CooperativeMatrixDecodeVectorNV = 5447,
|
|
||||||
SubgroupShuffleINTEL = 5568,
|
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
|
||||||
@@ -1579,6 +1580,7 @@ enum class TensorClampMode : unsigned {
|
|
||||||
enum class TensorAddressingOperandsShift : unsigned {
|
|
||||||
TensorView = 0,
|
|
||||||
DecodeFunc = 1,
|
|
||||||
+ DecodeVectorFunc = 2,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1586,6 +1588,7 @@ enum class TensorAddressingOperandsMask : unsigned {
|
|
||||||
MaskNone = 0,
|
|
||||||
TensorView = 0x00000001,
|
|
||||||
DecodeFunc = 0x00000002,
|
|
||||||
+ DecodeVectorFunc = 0x00000004,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class TensorOperandsShift : unsigned {
|
|
||||||
@@ -4453,6 +4456,7 @@ inline const char* CapabilityToString(Capability value) {
|
|
||||||
case Capability::CooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
|
|
||||||
case Capability::RayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
|
|
||||||
case Capability::TensorAddressingNV: return "TensorAddressingNV";
|
|
||||||
+ case Capability::CooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV";
|
|
||||||
case Capability::SubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
|
|
||||||
case Capability::SubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
|
|
||||||
case Capability::SubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index 5a21f07..35f85d9 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -1257,6 +1257,7 @@
|
|
||||||
"CooperativeVectorTrainingNV": 5435,
|
|
||||||
"RayTracingClusterAccelerationStructureNV": 5437,
|
|
||||||
"TensorAddressingNV": 5439,
|
|
||||||
+ "CooperativeMatrixDecodeVectorNV": 5447,
|
|
||||||
"SubgroupShuffleINTEL": 5568,
|
|
||||||
"SubgroupBufferBlockIOINTEL": 5569,
|
|
||||||
"SubgroupImageBlockIOINTEL": 5570,
|
|
||||||
@@ -1551,7 +1552,8 @@
|
|
||||||
"Values":
|
|
||||||
{
|
|
||||||
"TensorView": 0,
|
|
||||||
- "DecodeFunc": 1
|
|
||||||
+ "DecodeFunc": 1,
|
|
||||||
+ "DecodeVectorFunc": 2
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index 64b0a1f..f244e9a 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -1282,6 +1282,7 @@ spv = {
|
|
||||||
CooperativeVectorTrainingNV = 5435,
|
|
||||||
RayTracingClusterAccelerationStructureNV = 5437,
|
|
||||||
TensorAddressingNV = 5439,
|
|
||||||
+ CooperativeMatrixDecodeVectorNV = 5447,
|
|
||||||
SubgroupShuffleINTEL = 5568,
|
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
|
||||||
@@ -1570,6 +1571,7 @@ spv = {
|
|
||||||
TensorAddressingOperandsShift = {
|
|
||||||
TensorView = 0,
|
|
||||||
DecodeFunc = 1,
|
|
||||||
+ DecodeVectorFunc = 2,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
},
|
|
||||||
|
|
||||||
@@ -1577,6 +1579,7 @@ spv = {
|
|
||||||
MaskNone = 0,
|
|
||||||
TensorView = 0x00000001,
|
|
||||||
DecodeFunc = 0x00000002,
|
|
||||||
+ DecodeVectorFunc = 0x00000004,
|
|
||||||
},
|
|
||||||
|
|
||||||
TensorOperandsShift = {
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index 5f3bae6..af0e61f 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -1253,6 +1253,7 @@ spv = {
|
|
||||||
'CooperativeVectorTrainingNV' : 5435,
|
|
||||||
'RayTracingClusterAccelerationStructureNV' : 5437,
|
|
||||||
'TensorAddressingNV' : 5439,
|
|
||||||
+ 'CooperativeMatrixDecodeVectorNV' : 5447,
|
|
||||||
'SubgroupShuffleINTEL' : 5568,
|
|
||||||
'SubgroupBufferBlockIOINTEL' : 5569,
|
|
||||||
'SubgroupImageBlockIOINTEL' : 5570,
|
|
||||||
@@ -1525,12 +1526,14 @@ spv = {
|
|
||||||
'TensorAddressingOperandsShift' : {
|
|
||||||
'TensorView' : 0,
|
|
||||||
'DecodeFunc' : 1,
|
|
||||||
+ 'DecodeVectorFunc' : 2,
|
|
||||||
},
|
|
||||||
|
|
||||||
'TensorAddressingOperandsMask' : {
|
|
||||||
'MaskNone' : 0,
|
|
||||||
'TensorView' : 0x00000001,
|
|
||||||
'DecodeFunc' : 0x00000002,
|
|
||||||
+ 'DecodeVectorFunc' : 0x00000004,
|
|
||||||
},
|
|
||||||
|
|
||||||
'TensorOperandsShift' : {
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index 4e4e3dc..1ed7d76 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -1327,6 +1327,7 @@ enum Capability : uint
|
|
||||||
CooperativeVectorTrainingNV = 5435,
|
|
||||||
RayTracingClusterAccelerationStructureNV = 5437,
|
|
||||||
TensorAddressingNV = 5439,
|
|
||||||
+ CooperativeMatrixDecodeVectorNV = 5447,
|
|
||||||
SubgroupShuffleINTEL = 5568,
|
|
||||||
SubgroupBufferBlockIOINTEL = 5569,
|
|
||||||
SubgroupImageBlockIOINTEL = 5570,
|
|
||||||
@@ -1635,6 +1636,7 @@ enum TensorAddressingOperandsShift : uint
|
|
||||||
{
|
|
||||||
TensorView = 0,
|
|
||||||
DecodeFunc = 1,
|
|
||||||
+ DecodeVectorFunc = 2,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1643,6 +1645,7 @@ enum TensorAddressingOperandsMask : uint
|
|
||||||
MaskNone = 0,
|
|
||||||
TensorView = 0x00000001,
|
|
||||||
DecodeFunc = 0x00000002,
|
|
||||||
+ DecodeVectorFunc = 0x00000004,
|
|
||||||
}
|
|
||||||
|
|
||||||
enum TensorOperandsShift : uint
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
-116
@@ -1,116 +0,0 @@
|
|||||||
From 8c5559c134abcf432ec59db842404087b9906c1a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?K=C3=A9vin=20Petit?= <kevin.petit@arm.com>
|
|
||||||
Date: Wed, 20 May 2026 16:39:51 +0100
|
|
||||||
Subject: [PATCH 16/26] Add ArmExperimentalMLOperations instruction set (#602)
|
|
||||||
|
|
||||||
Change-Id: Id5e6f036ed0a1653ea9817c1d5b193c58403fe1d
|
|
||||||
|
|
||||||
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
|
|
||||||
---
|
|
||||||
BUILD.bazel | 6 +++++
|
|
||||||
.../unified1/ArmExperimentalMLOperations.h | 26 +++++++++++++++++++
|
|
||||||
...rm.experimental-ml-operations.grammar.json | 25 ++++++++++++++++++
|
|
||||||
tools/buildHeaders/bin/makeExtinstHeaders.py | 1 +
|
|
||||||
4 files changed, 58 insertions(+)
|
|
||||||
create mode 100644 include/spirv/unified1/ArmExperimentalMLOperations.h
|
|
||||||
create mode 100644 include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json
|
|
||||||
|
|
||||||
diff --git a/BUILD.bazel b/BUILD.bazel
|
|
||||||
index 61ef7e8..db21aeb 100644
|
|
||||||
--- a/BUILD.bazel
|
|
||||||
+++ b/BUILD.bazel
|
|
||||||
@@ -143,6 +143,11 @@ filegroup(
|
|
||||||
srcs = ["include/spirv/unified1/extinst.nonsemantic.graph.debuginfo.grammar.json"],
|
|
||||||
)
|
|
||||||
|
|
||||||
+filegroup(
|
|
||||||
+ name = "spirv_ext_inst_arm_experimental_ml_operations",
|
|
||||||
+ srcs = ["include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json"],
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
cc_library(
|
|
||||||
name = "spirv_common_headers",
|
|
||||||
hdrs = [
|
|
||||||
@@ -152,6 +157,7 @@ cc_library(
|
|
||||||
"include/spirv/1.1/OpenCL.std.h",
|
|
||||||
"include/spirv/1.2/GLSL.std.450.h",
|
|
||||||
"include/spirv/1.2/OpenCL.std.h",
|
|
||||||
+ "include/spirv/unified1/ArmExperimentalMLOperations.h",
|
|
||||||
"include/spirv/unified1/ArmMotionEngine.100.h",
|
|
||||||
"include/spirv/unified1/GLSL.std.450.h",
|
|
||||||
"include/spirv/unified1/NonSemanticClspvReflection.h",
|
|
||||||
diff --git a/include/spirv/unified1/ArmExperimentalMLOperations.h b/include/spirv/unified1/ArmExperimentalMLOperations.h
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..64b0e70
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/spirv/unified1/ArmExperimentalMLOperations.h
|
|
||||||
@@ -0,0 +1,26 @@
|
|
||||||
+// SPDX-FileCopyrightText: 2025 Arm Ltd.
|
|
||||||
+// SPDX-License-Identifier: MIT
|
|
||||||
+
|
|
||||||
+#ifndef SPIRV_UNIFIED1_ArmExperimentalMLOperations_H_
|
|
||||||
+#define SPIRV_UNIFIED1_ArmExperimentalMLOperations_H_
|
|
||||||
+
|
|
||||||
+#ifdef __cplusplus
|
|
||||||
+extern "C" {
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+enum {
|
|
||||||
+ ArmExperimentalMLOperationsRevision = 1,
|
|
||||||
+ ArmExperimentalMLOperationsRevision_BitWidthPadding = 0x7fffffff
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+enum ArmExperimentalMLOperationsInstructions {
|
|
||||||
+ ArmExperimentalMLOperationsCALL = 0,
|
|
||||||
+ ArmExperimentalMLOperationsInstructionsMax = 0x7fffffff
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef __cplusplus
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#endif // SPIRV_UNIFIED1_ArmExperimentalMLOperations_H_
|
|
||||||
diff --git a/include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json b/include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..169dfe9
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/spirv/unified1/extinst.arm.experimental-ml-operations.grammar.json
|
|
||||||
@@ -0,0 +1,25 @@
|
|
||||||
+{
|
|
||||||
+ "copyright": [
|
|
||||||
+ "SPDX-FileCopyrightText: 2025 Arm Ltd.",
|
|
||||||
+ "SPDX-License-Identifier: MIT"
|
|
||||||
+ ],
|
|
||||||
+ "revision": 1,
|
|
||||||
+ "instructions": [
|
|
||||||
+ {
|
|
||||||
+ "opname": "CALL",
|
|
||||||
+ "opcode": 0,
|
|
||||||
+ "operands": [
|
|
||||||
+ {
|
|
||||||
+ "kind": "LiteralInteger",
|
|
||||||
+ "name": "Opcode"
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "kind": "IdRef",
|
|
||||||
+ "quantifier": "*",
|
|
||||||
+ "name": "Parameters"
|
|
||||||
+ }
|
|
||||||
+ ]
|
|
||||||
+ }
|
|
||||||
+ ],
|
|
||||||
+ "operand_kinds": []
|
|
||||||
+}
|
|
||||||
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
|
|
||||||
index 1c9fbfd..863fca1 100755
|
|
||||||
--- a/tools/buildHeaders/bin/makeExtinstHeaders.py
|
|
||||||
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
|
|
||||||
@@ -32,3 +32,4 @@ mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.gram
|
|
||||||
mk_extinst('TOSA', 'extinst.tosa.001000.1.grammar.json', 'TOSA.001000.1')
|
|
||||||
mk_extinst('ArmMotionEngine', 'extinst.arm.motion-engine.100.grammar.json', 'ArmMotionEngine.100')
|
|
||||||
mk_extinst('NonSemanticGraphDebugInfo', 'extinst.nonsemantic.graph.debuginfo.grammar.json')
|
|
||||||
+mk_extinst('ArmExperimentalMLOperations', 'extinst.arm.experimental-ml-operations.grammar.json')
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,207 +0,0 @@
|
|||||||
From 1e770e7de8373a8dd49f23416cf7ca4001d01040 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jebrim <jebscapeplugin@gmail.com>
|
|
||||||
Date: Wed, 27 May 2026 10:48:38 -0500
|
|
||||||
Subject: [PATCH 17/26] Add Pred as a new SPIR-V source language (#606)
|
|
||||||
|
|
||||||
* Add Pred as a new SPIR-V source language
|
|
||||||
|
|
||||||
* Update spirv.bf
|
|
||||||
|
|
||||||
* Update spirv.core.grammar.json
|
|
||||||
|
|
||||||
* Update spirv.cs
|
|
||||||
|
|
||||||
* Update spirv.hpp
|
|
||||||
|
|
||||||
* Update spirv.hpp11
|
|
||||||
|
|
||||||
* Update spirv.json
|
|
||||||
|
|
||||||
* Update spirv.lua
|
|
||||||
|
|
||||||
* Update spirv.py
|
|
||||||
|
|
||||||
* Update spv.d
|
|
||||||
|
|
||||||
* Update spir-v.xml
|
|
||||||
---
|
|
||||||
include/spirv/spir-v.xml | 3 ++-
|
|
||||||
include/spirv/unified1/spirv.bf | 1 +
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 5 +++++
|
|
||||||
include/spirv/unified1/spirv.cs | 1 +
|
|
||||||
include/spirv/unified1/spirv.h | 2 ++
|
|
||||||
include/spirv/unified1/spirv.hpp | 2 ++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 2 ++
|
|
||||||
include/spirv/unified1/spirv.json | 3 ++-
|
|
||||||
include/spirv/unified1/spirv.lua | 1 +
|
|
||||||
include/spirv/unified1/spirv.py | 1 +
|
|
||||||
include/spirv/unified1/spv.d | 1 +
|
|
||||||
11 files changed, 20 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
|
|
||||||
index 69a2c2a..1463dd6 100644
|
|
||||||
--- a/include/spirv/spir-v.xml
|
|
||||||
+++ b/include/spirv/spir-v.xml
|
|
||||||
@@ -82,7 +82,8 @@
|
|
||||||
<id value="47" vendor="ARM" comment="Contact Christopher Gautier, christopher.gautier@arm.com"/>
|
|
||||||
<id value="48" vendor="Goopax" comment="Contact Ingo Josopait, josopait@goopax.com"/>
|
|
||||||
<id value="49" vendor="Icyllis Milica" tool="Arc3D Shader Compiler" comment="Contact Icyllis Milica, https://github.com/BloCamLimb/Arc3D"/>
|
|
||||||
- <unused start="50" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
|
||||||
+ <id value="50" vendor="Isochron" tool="Pred" comment="Contact Justin Ead, jebrim@isochrontechnologies.com"/>
|
|
||||||
+ <unused start="51" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
|
||||||
</ids>
|
|
||||||
|
|
||||||
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index 9497023..fb9644e 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -56,6 +56,7 @@ namespace Spv
|
|
||||||
Slang = 11,
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
+ Pred = 14,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 4f96982..9e1adee 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -12684,6 +12684,11 @@
|
|
||||||
"enumerant" : "Rust",
|
|
||||||
"value" : 13,
|
|
||||||
"version" : "1.0"
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "Pred",
|
|
||||||
+ "value" : 14,
|
|
||||||
+ "version" : "1.0"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index 7631bf2..d0f69b9 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -55,6 +55,7 @@ namespace Spv
|
|
||||||
Slang = 11,
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
+ Pred = 14,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 5ab265f..966ad68 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -63,6 +63,7 @@ typedef enum SpvSourceLanguage_ {
|
|
||||||
SpvSourceLanguageSlang = 11,
|
|
||||||
SpvSourceLanguageZig = 12,
|
|
||||||
SpvSourceLanguageRust = 13,
|
|
||||||
+ SpvSourceLanguagePred = 14,
|
|
||||||
SpvSourceLanguageMax = 0x7fffffff,
|
|
||||||
} SpvSourceLanguage;
|
|
||||||
|
|
||||||
@@ -3564,6 +3565,7 @@ inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
|
|
||||||
case SpvSourceLanguageSlang: return "Slang";
|
|
||||||
case SpvSourceLanguageZig: return "Zig";
|
|
||||||
case SpvSourceLanguageRust: return "Rust";
|
|
||||||
+ case SpvSourceLanguagePred: return "Pred";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 33b4a8b..517b7cf 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -59,6 +59,7 @@ enum SourceLanguage {
|
|
||||||
SourceLanguageSlang = 11,
|
|
||||||
SourceLanguageZig = 12,
|
|
||||||
SourceLanguageRust = 13,
|
|
||||||
+ SourceLanguagePred = 14,
|
|
||||||
SourceLanguageMax = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -3560,6 +3561,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
|
|
||||||
case SourceLanguageSlang: return "Slang";
|
|
||||||
case SourceLanguageZig: return "Zig";
|
|
||||||
case SourceLanguageRust: return "Rust";
|
|
||||||
+ case SourceLanguagePred: return "Pred";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index eb15ea2..4fa5f8f 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -59,6 +59,7 @@ enum class SourceLanguage : unsigned {
|
|
||||||
Slang = 11,
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
+ Pred = 14,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -3560,6 +3561,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
|
|
||||||
case SourceLanguage::Slang: return "Slang";
|
|
||||||
case SourceLanguage::Zig: return "Zig";
|
|
||||||
case SourceLanguage::Rust: return "Rust";
|
|
||||||
+ case SourceLanguage::Pred: return "Pred";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index 35f85d9..43a7891 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -65,7 +65,8 @@
|
|
||||||
"WGSL": 10,
|
|
||||||
"Slang": 11,
|
|
||||||
"Zig": 12,
|
|
||||||
- "Rust": 13
|
|
||||||
+ "Rust": 13,
|
|
||||||
+ "Pred": 14
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index f244e9a..bb4c52f 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -50,6 +50,7 @@ spv = {
|
|
||||||
Slang = 11,
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
+ Pred = 14,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
},
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index af0e61f..e01e462 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -50,6 +50,7 @@ spv = {
|
|
||||||
'Slang' : 11,
|
|
||||||
'Zig' : 12,
|
|
||||||
'Rust' : 13,
|
|
||||||
+ 'Pred' : 14,
|
|
||||||
},
|
|
||||||
|
|
||||||
'ExecutionModel' : {
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index 1ed7d76..3e631ef 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -58,6 +58,7 @@ enum SourceLanguage : uint
|
|
||||||
Slang = 11,
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
+ Pred = 14,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,186 +0,0 @@
|
|||||||
From c63848ecf2200425511319fd8bf2c17b751e501e Mon Sep 17 00:00:00 2001
|
|
||||||
From: apilatosba <104633944+apilatosba@users.noreply.github.com>
|
|
||||||
Date: Wed, 17 Jun 2026 17:38:53 +0200
|
|
||||||
Subject: [PATCH 18/26] added source language entry ApilaJai (#607)
|
|
||||||
|
|
||||||
---
|
|
||||||
include/spirv/spir-v.xml | 3 ++-
|
|
||||||
include/spirv/unified1/spirv.bf | 1 +
|
|
||||||
include/spirv/unified1/spirv.core.grammar.json | 5 +++++
|
|
||||||
include/spirv/unified1/spirv.cs | 1 +
|
|
||||||
include/spirv/unified1/spirv.h | 2 ++
|
|
||||||
include/spirv/unified1/spirv.hpp | 2 ++
|
|
||||||
include/spirv/unified1/spirv.hpp11 | 2 ++
|
|
||||||
include/spirv/unified1/spirv.json | 3 ++-
|
|
||||||
include/spirv/unified1/spirv.lua | 1 +
|
|
||||||
include/spirv/unified1/spirv.py | 1 +
|
|
||||||
include/spirv/unified1/spv.d | 1 +
|
|
||||||
11 files changed, 20 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
|
|
||||||
index 1463dd6..1b083a4 100644
|
|
||||||
--- a/include/spirv/spir-v.xml
|
|
||||||
+++ b/include/spirv/spir-v.xml
|
|
||||||
@@ -83,7 +83,8 @@
|
|
||||||
<id value="48" vendor="Goopax" comment="Contact Ingo Josopait, josopait@goopax.com"/>
|
|
||||||
<id value="49" vendor="Icyllis Milica" tool="Arc3D Shader Compiler" comment="Contact Icyllis Milica, https://github.com/BloCamLimb/Arc3D"/>
|
|
||||||
<id value="50" vendor="Isochron" tool="Pred" comment="Contact Justin Ead, jebrim@isochrontechnologies.com"/>
|
|
||||||
- <unused start="51" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
|
||||||
+ <id value="51" vendor="apilatosba" tool="Apila Jai Compiler" comment="https://github.com/apilatosba/jai_to_spirv_compiler"/>
|
|
||||||
+ <unused start="52" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
|
|
||||||
</ids>
|
|
||||||
|
|
||||||
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
|
|
||||||
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
||||||
index fb9644e..40fbfff 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.bf
|
|
||||||
+++ b/include/spirv/unified1/spirv.bf
|
|
||||||
@@ -57,6 +57,7 @@ namespace Spv
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
Pred = 14,
|
|
||||||
+ ApilaJai = 15,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
index 9e1adee..8b5595c 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
||||||
@@ -12689,6 +12689,11 @@
|
|
||||||
"enumerant" : "Pred",
|
|
||||||
"value" : 14,
|
|
||||||
"version" : "1.0"
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ "enumerant" : "ApilaJai",
|
|
||||||
+ "value" : 15,
|
|
||||||
+ "version" : "1.0"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
||||||
index d0f69b9..a1b7d58 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.cs
|
|
||||||
+++ b/include/spirv/unified1/spirv.cs
|
|
||||||
@@ -56,6 +56,7 @@ namespace Spv
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
Pred = 14,
|
|
||||||
+ ApilaJai = 15,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
||||||
index 966ad68..d1f88cf 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.h
|
|
||||||
+++ b/include/spirv/unified1/spirv.h
|
|
||||||
@@ -64,6 +64,7 @@ typedef enum SpvSourceLanguage_ {
|
|
||||||
SpvSourceLanguageZig = 12,
|
|
||||||
SpvSourceLanguageRust = 13,
|
|
||||||
SpvSourceLanguagePred = 14,
|
|
||||||
+ SpvSourceLanguageApilaJai = 15,
|
|
||||||
SpvSourceLanguageMax = 0x7fffffff,
|
|
||||||
} SpvSourceLanguage;
|
|
||||||
|
|
||||||
@@ -3566,6 +3567,7 @@ inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
|
|
||||||
case SpvSourceLanguageZig: return "Zig";
|
|
||||||
case SpvSourceLanguageRust: return "Rust";
|
|
||||||
case SpvSourceLanguagePred: return "Pred";
|
|
||||||
+ case SpvSourceLanguageApilaJai: return "ApilaJai";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
||||||
index 517b7cf..9f3cb01 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp
|
|
||||||
@@ -60,6 +60,7 @@ enum SourceLanguage {
|
|
||||||
SourceLanguageZig = 12,
|
|
||||||
SourceLanguageRust = 13,
|
|
||||||
SourceLanguagePred = 14,
|
|
||||||
+ SourceLanguageApilaJai = 15,
|
|
||||||
SourceLanguageMax = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -3562,6 +3563,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
|
|
||||||
case SourceLanguageZig: return "Zig";
|
|
||||||
case SourceLanguageRust: return "Rust";
|
|
||||||
case SourceLanguagePred: return "Pred";
|
|
||||||
+ case SourceLanguageApilaJai: return "ApilaJai";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
||||||
index 4fa5f8f..4eb6fbd 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.hpp11
|
|
||||||
+++ b/include/spirv/unified1/spirv.hpp11
|
|
||||||
@@ -60,6 +60,7 @@ enum class SourceLanguage : unsigned {
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
Pred = 14,
|
|
||||||
+ ApilaJai = 15,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -3562,6 +3563,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
|
|
||||||
case SourceLanguage::Zig: return "Zig";
|
|
||||||
case SourceLanguage::Rust: return "Rust";
|
|
||||||
case SourceLanguage::Pred: return "Pred";
|
|
||||||
+ case SourceLanguage::ApilaJai: return "ApilaJai";
|
|
||||||
default: return "Unknown";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
||||||
index 43a7891..1b124e4 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.json
|
|
||||||
+++ b/include/spirv/unified1/spirv.json
|
|
||||||
@@ -66,7 +66,8 @@
|
|
||||||
"Slang": 11,
|
|
||||||
"Zig": 12,
|
|
||||||
"Rust": 13,
|
|
||||||
- "Pred": 14
|
|
||||||
+ "Pred": 14,
|
|
||||||
+ "ApilaJai": 15
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
||||||
index bb4c52f..a5f9267 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.lua
|
|
||||||
+++ b/include/spirv/unified1/spirv.lua
|
|
||||||
@@ -51,6 +51,7 @@ spv = {
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
Pred = 14,
|
|
||||||
+ ApilaJai = 15,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
},
|
|
||||||
|
|
||||||
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
||||||
index e01e462..17cb6b1 100644
|
|
||||||
--- a/include/spirv/unified1/spirv.py
|
|
||||||
+++ b/include/spirv/unified1/spirv.py
|
|
||||||
@@ -51,6 +51,7 @@ spv = {
|
|
||||||
'Zig' : 12,
|
|
||||||
'Rust' : 13,
|
|
||||||
'Pred' : 14,
|
|
||||||
+ 'ApilaJai' : 15,
|
|
||||||
},
|
|
||||||
|
|
||||||
'ExecutionModel' : {
|
|
||||||
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
||||||
index 3e631ef..ceb9aac 100644
|
|
||||||
--- a/include/spirv/unified1/spv.d
|
|
||||||
+++ b/include/spirv/unified1/spv.d
|
|
||||||
@@ -59,6 +59,7 @@ enum SourceLanguage : uint
|
|
||||||
Zig = 12,
|
|
||||||
Rust = 13,
|
|
||||||
Pred = 14,
|
|
||||||
+ ApilaJai = 15,
|
|
||||||
Max = 0x7fffffff,
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
From ed734383000313dd53e57aec28b35effc28f8f61 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Khronos Group Web Services <webservices@khronosgroup.org>
|
|
||||||
Date: Wed, 24 Jun 2026 11:37:39 -0400
|
|
||||||
Subject: [PATCH 19/26] license: Add or update REUSE compliance (#609)
|
|
||||||
|
|
||||||
---
|
|
||||||
CODE_OF_CONDUCT.md | 7 ++++++-
|
|
||||||
README.md | 5 +++++
|
|
||||||
REUSE.toml | 42 ++++++++++++------------------------------
|
|
||||||
SECURITY.md | 5 +++++
|
|
||||||
4 files changed, 28 insertions(+), 31 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
|
|
||||||
index a11610b..f601007 100644
|
|
||||||
--- a/CODE_OF_CONDUCT.md
|
|
||||||
+++ b/CODE_OF_CONDUCT.md
|
|
||||||
@@ -1 +1,6 @@
|
|
||||||
-A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
|
|
||||||
+<!--
|
|
||||||
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
|
|
||||||
+SPDX-License-Identifier: CC-BY-4.0
|
|
||||||
+-->
|
|
||||||
+
|
|
||||||
+A reminder that this repository is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
|
|
||||||
diff --git a/README.md b/README.md
|
|
||||||
index ed38828..16fa0cd 100644
|
|
||||||
--- a/README.md
|
|
||||||
+++ b/README.md
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+<!--
|
|
||||||
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
|
|
||||||
+SPDX-License-Identifier: CC-BY-4.0
|
|
||||||
+-->
|
|
||||||
+
|
|
||||||
# SPIR-V Headers
|
|
||||||
|
|
||||||
This repository contains machine-readable files for the
|
|
||||||
diff --git a/REUSE.toml b/REUSE.toml
|
|
||||||
index 8392272..00837a5 100644
|
|
||||||
--- a/REUSE.toml
|
|
||||||
+++ b/REUSE.toml
|
|
||||||
@@ -4,46 +4,28 @@ SPDX-PackageSupplier = "The Khronos Group, Inc."
|
|
||||||
SPDX-PackageDownloadLocation = "https://github.com/KhronosGroup/SPIRV-Headers"
|
|
||||||
|
|
||||||
[[annotations]]
|
|
||||||
-path = ["**.md", "WORKSPACE", ".git**"]
|
|
||||||
-precedence = "aggregate"
|
|
||||||
+path = [
|
|
||||||
+ "WORKSPACE",
|
|
||||||
+ ".git**",
|
|
||||||
+]
|
|
||||||
+precedence = "closest"
|
|
||||||
SPDX-FileCopyrightText = "The Khronos Group, Inc."
|
|
||||||
SPDX-License-Identifier = "CC-BY-4.0"
|
|
||||||
|
|
||||||
[[annotations]]
|
|
||||||
-path = ["include/**/*.json" ]
|
|
||||||
-precedence = "aggregate"
|
|
||||||
+path = ["**" ]
|
|
||||||
+precedence = "closest"
|
|
||||||
SPDX-FileCopyrightText = "The Khronos Group, Inc."
|
|
||||||
SPDX-License-Identifier = "MIT"
|
|
||||||
|
|
||||||
[[annotations]]
|
|
||||||
-path = ["include/spirv/1.0/spir*", "include/spirv/1.1/spir*", "include/spirv/1.2/spir*"]
|
|
||||||
-precedence = "aggregate"
|
|
||||||
-SPDX-FileCopyrightText = "2014-2018 The Khronos Group, Inc."
|
|
||||||
-SPDX-License-Identifier = "MIT"
|
|
||||||
-
|
|
||||||
-[[annotations]]
|
|
||||||
-path = ["include/spirv/unified1/spir*", "include/spirv/unified1/spv.d"]
|
|
||||||
-precedence = "aggregate"
|
|
||||||
-SPDX-FileCopyrightText = "2014-2024 The Khronos Group, Inc."
|
|
||||||
-SPDX-License-Identifier = "MIT"
|
|
||||||
-
|
|
||||||
-[[annotations]]
|
|
||||||
-path = [
|
|
||||||
- "BUILD.bazel",
|
|
||||||
- "MODULE.bazel",
|
|
||||||
- "cmake/SPIRV-Headers.pc.in",
|
|
||||||
- "tools/buildHeaders/CMakeLists.txt",
|
|
||||||
- "tools/buildHeaders/bin/makeExtinstHeaders.py",
|
|
||||||
- "tools/buildHeaders/bin/makeHeaders",
|
|
||||||
- "include/spirv/unified1/OpenCLDebugInfo100.h",
|
|
||||||
- "include/spirv/unified1/DebugInfo.h"
|
|
||||||
-]
|
|
||||||
-precedence = "aggregate"
|
|
||||||
-SPDX-FileCopyrightText = "The Khronos Group, Inc."
|
|
||||||
+path = "tools/buildHeaders/bin/generate_language_headers.py"
|
|
||||||
+precedence = "closest"
|
|
||||||
+SPDX-FileCopyrightText = "Google LLC"
|
|
||||||
SPDX-License-Identifier = "MIT"
|
|
||||||
|
|
||||||
[[annotations]]
|
|
||||||
path = "tools/buildHeaders/jsoncpp/**"
|
|
||||||
-precedence = "aggregate"
|
|
||||||
-SPDX-FileCopyrightText = "2007-2010 by Baptiste Lepilleur"
|
|
||||||
+precedence = "closest"
|
|
||||||
+SPDX-FileCopyrightText = "Baptiste Lepilleur"
|
|
||||||
SPDX-License-Identifier = "MIT"
|
|
||||||
diff --git a/SECURITY.md b/SECURITY.md
|
|
||||||
index 9b51f0c..cdc2060 100644
|
|
||||||
--- a/SECURITY.md
|
|
||||||
+++ b/SECURITY.md
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+<!--
|
|
||||||
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
|
|
||||||
+SPDX-License-Identifier: CC-BY-4.0
|
|
||||||
+-->
|
|
||||||
+
|
|
||||||
# Security Policy
|
|
||||||
|
|
||||||
## Supported Versions
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
From daa093dd29aab8cbb6562b808370562f56e399fb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Khronos Group Web Services <webservices@khronosgroup.org>
|
|
||||||
Date: Wed, 24 Jun 2026 11:39:24 -0400
|
|
||||||
Subject: [PATCH 20/26] chore: Add CONTRIBUTING file (#608)
|
|
||||||
|
|
||||||
---
|
|
||||||
CONTRIBUTING.md | 28 ++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 28 insertions(+)
|
|
||||||
create mode 100644 CONTRIBUTING.md
|
|
||||||
|
|
||||||
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..3d3062c
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/CONTRIBUTING.md
|
|
||||||
@@ -0,0 +1,28 @@
|
|
||||||
+<!--
|
|
||||||
+SPDX-FileCopyrightText: 2026 The Khronos Group Inc.
|
|
||||||
+SPDX-License-Identifier: CC-BY-4.0
|
|
||||||
+-->
|
|
||||||
+
|
|
||||||
+# Contributing to SPIRV-Headers
|
|
||||||
+
|
|
||||||
+## Contributing
|
|
||||||
+
|
|
||||||
+This project welcomes contributions and suggestions. Contributions require you
|
|
||||||
+to agree to a
|
|
||||||
+[Contributor License Agreement (CLA)](https://cla-assistant.io/KhronosGroup/SPIRV-Headers)
|
|
||||||
+declaring that you have the right to, and actually do, grant the rights to use
|
|
||||||
+your contribution.
|
|
||||||
+
|
|
||||||
+When you submit a pull request, a CLA bot will determine whether you need to
|
|
||||||
+sign a CLA. Simply follow the instructions provided.
|
|
||||||
+
|
|
||||||
+## AI-Assisted Contributions
|
|
||||||
+
|
|
||||||
+By submitting a Contribution to this repository, you additionally represent
|
|
||||||
+that, to the extent any of Your Contributions were developed with the
|
|
||||||
+assistance of artificial intelligence tools or AI-generated code, You have
|
|
||||||
+exercised sufficient review, judgment, and creative direction over such tools
|
|
||||||
+and resulting material to reasonably consider it Your original creation, and
|
|
||||||
+You are not aware of any third-party license, intellectual property claim, or
|
|
||||||
+other restriction arising from such use that is associated with any part of
|
|
||||||
+Your Contribution or use thereof.
|
|
||||||
--
|
|
||||||
2.54.0
|
|
||||||
|
|
||||||
@@ -576,12 +576,12 @@ package libXfont2 {
|
|||||||
website = "https://gitlab.freedesktop.org/xorg/lib/libxfont";
|
website = "https://gitlab.freedesktop.org/xorg/lib/libxfont";
|
||||||
anitya = 17165;
|
anitya = 17165;
|
||||||
|
|
||||||
version# = "2.0.8";
|
version# = "2.0.9";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
suffix = "xorg/lib/libxfont";
|
suffix = "xorg/lib/libxfont";
|
||||||
ref = "libXfont2-"+version;
|
ref = "libXfont2-"+version;
|
||||||
checksum = "8bYRkoiDkbZC2nFs0cOlcmLUNKS6_ZkDTrxas2KxxCJm_PsUD_E58HkMCmGfPGkp";
|
checksum = "K9d4_rX3oTqGRgPUqi2S8eND-9mQ7oirt2PFMsyjXOYi9VSZC-_qH5Lh0Lwmk-c8";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = make {
|
exec = make {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ type MakeMakerHelper struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// extra returns perl.
|
// extra returns perl.
|
||||||
func (*MakeMakerHelper) extra(int) P { return P{_perl, _make} }
|
func (*MakeMakerHelper) extra() P { return P{_perl, _make} }
|
||||||
|
|
||||||
// wantsChmod returns true.
|
// wantsChmod returns true.
|
||||||
func (*MakeMakerHelper) wantsChmod() bool { return true }
|
func (*MakeMakerHelper) wantsChmod() bool { return true }
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ type PipHelper struct {
|
|||||||
var _ Helper = new(PipHelper)
|
var _ Helper = new(PipHelper)
|
||||||
|
|
||||||
// extra returns python, or pytest if defaults are assumed.
|
// extra returns python, or pytest if defaults are assumed.
|
||||||
func (attr *PipHelper) extra(int) P {
|
func (attr *PipHelper) extra() P {
|
||||||
if attr == nil || (!attr.SkipCheck && attr.Check == "") {
|
if attr == nil || (!attr.SkipCheck && attr.Check == "") {
|
||||||
return P{_pythonPyTest}
|
return P{_pythonPyTest}
|
||||||
}
|
}
|
||||||
|
|||||||
+133
-132
@@ -121,6 +121,12 @@ const (
|
|||||||
// Std denotes the standard Rosa OS toolchain.
|
// Std denotes the standard Rosa OS toolchain.
|
||||||
Std
|
Std
|
||||||
|
|
||||||
|
// Stage3 denotes the stage3 Rosa OS toolchain built on [Std]. Software
|
||||||
|
// built on this toolchain should be identical to [Std]. This is generally
|
||||||
|
// for validation of LLVM 3-stage nondeterminism only, due to dynamic
|
||||||
|
// linking complications.
|
||||||
|
Stage3
|
||||||
|
|
||||||
// _stageEnd is the total number of stages available and does not denote a
|
// _stageEnd is the total number of stages available and does not denote a
|
||||||
// valid toolchain.
|
// valid toolchain.
|
||||||
_stageEnd
|
_stageEnd
|
||||||
@@ -149,7 +155,7 @@ func (t Stage) isIntermediate() bool {
|
|||||||
// isStd returns whether t is considered functionally equivalent to [Std].
|
// isStd returns whether t is considered functionally equivalent to [Std].
|
||||||
func (t Stage) isStd() bool {
|
func (t Stage) isStd() bool {
|
||||||
switch t {
|
switch t {
|
||||||
case stageStdGentoo, Std:
|
case stageStdGentoo, Std, Stage3:
|
||||||
return true
|
return true
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
@@ -198,17 +204,6 @@ const scriptName = "all"
|
|||||||
// build script under.
|
// build script under.
|
||||||
var absCureScript = AbsSystem.Append(scriptName)
|
var absCureScript = AbsSystem.Append(scriptName)
|
||||||
|
|
||||||
const (
|
|
||||||
// TExclusive denotes an exclusive [pkg.Artifact].
|
|
||||||
TExclusive = 1 << iota
|
|
||||||
// TEarly hints for an early variant of toybox to be used when available.
|
|
||||||
TEarly
|
|
||||||
// TNoToolchain excludes the LLVM toolchain.
|
|
||||||
TNoToolchain
|
|
||||||
// THostNet arranges for a [pkg.KindExecNet] to be created.
|
|
||||||
THostNet
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
_stage0Dist = H("stage0-dist")
|
_stage0Dist = H("stage0-dist")
|
||||||
_mksh = H("mksh")
|
_mksh = H("mksh")
|
||||||
@@ -218,102 +213,6 @@ var (
|
|||||||
_patch = H("patch")
|
_patch = H("patch")
|
||||||
)
|
)
|
||||||
|
|
||||||
// New returns a [pkg.Artifact] based on a [Toolchain] via s.
|
|
||||||
func (t Toolchain) New(
|
|
||||||
name string,
|
|
||||||
flag int,
|
|
||||||
extra []pkg.Artifact,
|
|
||||||
knownChecksum *pkg.Checksum,
|
|
||||||
env []string,
|
|
||||||
script string,
|
|
||||||
|
|
||||||
paths ...pkg.ExecPath,
|
|
||||||
) pkg.Artifact {
|
|
||||||
const lcMessages = "LC_MESSAGES=C.UTF-8"
|
|
||||||
|
|
||||||
var support []pkg.Artifact
|
|
||||||
switch t.stage {
|
|
||||||
case stageGentoo, stageEarly:
|
|
||||||
name += "-boot"
|
|
||||||
support = append(support, extra...)
|
|
||||||
support = append(support, NewEtc(true))
|
|
||||||
if t.stage == stageEarly {
|
|
||||||
_, a := t.MustLoad(_stage0Dist)
|
|
||||||
support = append(support, a)
|
|
||||||
} else if t.gentooStage3 == nil {
|
|
||||||
panic(os.ErrInvalid)
|
|
||||||
} else {
|
|
||||||
support = append(support,
|
|
||||||
t.gentooStage3,
|
|
||||||
gentooOverlay{t.gentooStage3},
|
|
||||||
)
|
|
||||||
env = append(env,
|
|
||||||
"CC=clang",
|
|
||||||
"CXX=clang++",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
env = fixupEnviron(env, []string{
|
|
||||||
EnvTriple + "=" + t.triple(),
|
|
||||||
lcMessages,
|
|
||||||
"LDFLAGS=" + t.earlyLDFLAGS(true),
|
|
||||||
}, "/system/bin",
|
|
||||||
"/usr/bin",
|
|
||||||
)
|
|
||||||
|
|
||||||
case stageIntermediateGentoo, stageStdGentoo,
|
|
||||||
stageIntermediate, Std:
|
|
||||||
if t.stage.isIntermediate() {
|
|
||||||
name += "-std"
|
|
||||||
}
|
|
||||||
|
|
||||||
toybox := _toybox
|
|
||||||
if flag&TEarly != 0 {
|
|
||||||
toybox = _toyboxEarly
|
|
||||||
}
|
|
||||||
|
|
||||||
base := _llvm
|
|
||||||
if flag&TNoToolchain != 0 {
|
|
||||||
base = _musl
|
|
||||||
}
|
|
||||||
|
|
||||||
support = slices.Concat(extra, t.S.New(t.stage-1).Append([]pkg.Artifact{
|
|
||||||
NewEtc(false),
|
|
||||||
},
|
|
||||||
base,
|
|
||||||
_mksh,
|
|
||||||
toybox,
|
|
||||||
))
|
|
||||||
env = fixupEnviron(env, []string{
|
|
||||||
EnvTriple + "=" + t.triple(),
|
|
||||||
lcMessages,
|
|
||||||
}, "/system/bin", "/bin")
|
|
||||||
|
|
||||||
default:
|
|
||||||
panic("unsupported toolchain " + strconv.Itoa(int(t.stage)))
|
|
||||||
}
|
|
||||||
|
|
||||||
return pkg.NewExec(
|
|
||||||
name, t.arch, knownChecksum, pkg.ExecTimeoutMax,
|
|
||||||
flag&THostNet != 0,
|
|
||||||
flag&TExclusive != 0,
|
|
||||||
fhs.AbsRoot, env,
|
|
||||||
absCureScript,
|
|
||||||
nil,
|
|
||||||
|
|
||||||
slices.Concat([]pkg.ExecPath{pkg.Path(
|
|
||||||
fhs.AbsRoot, true,
|
|
||||||
support...,
|
|
||||||
), pkg.Path(
|
|
||||||
absCureScript, false,
|
|
||||||
pkg.NewFile(scriptName, []byte(
|
|
||||||
"#!/system/bin/sh\n"+
|
|
||||||
"set -eu -o pipefail\n"+
|
|
||||||
script,
|
|
||||||
)),
|
|
||||||
)}, paths)...,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HasStageEarly returns whether a stage0 distribution is available.
|
// HasStageEarly returns whether a stage0 distribution is available.
|
||||||
func (s *S) HasStageEarly() (ok bool) {
|
func (s *S) HasStageEarly() (ok bool) {
|
||||||
func() {
|
func() {
|
||||||
@@ -363,9 +262,14 @@ function apply {
|
|||||||
buf.WriteString("'\n")
|
buf.WriteString("'\n")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return t.New(name+"-src", 0, t.Append(nil,
|
|
||||||
|
return t.New(name+"-src", Unversioned, nil, &PackageAttr{
|
||||||
|
Paths: paths,
|
||||||
|
}, &GenericHelper{
|
||||||
|
Build: buf.String(),
|
||||||
|
},
|
||||||
_patch,
|
_patch,
|
||||||
), nil, nil, buf.String(), paths...)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// helperInPlace is a special directory value for omitting the cd statement.
|
// helperInPlace is a special directory value for omitting the cd statement.
|
||||||
@@ -374,7 +278,7 @@ const helperInPlace = "\x00"
|
|||||||
// Helper is a build system helper for [Toolchain.NewPackage].
|
// Helper is a build system helper for [Toolchain.NewPackage].
|
||||||
type Helper interface {
|
type Helper interface {
|
||||||
// extra returns helper-specific dependencies.
|
// extra returns helper-specific dependencies.
|
||||||
extra(flag int) P
|
extra() P
|
||||||
|
|
||||||
// wantsChmod returns whether the source directory should be made writable.
|
// wantsChmod returns whether the source directory should be made writable.
|
||||||
wantsChmod() bool
|
wantsChmod() bool
|
||||||
@@ -416,12 +320,21 @@ type PackageAttr struct {
|
|||||||
// Whether to replace /usr/bin/ with a symlink to /bin/.
|
// Whether to replace /usr/bin/ with a symlink to /bin/.
|
||||||
PopulateUsrBin bool
|
PopulateUsrBin bool
|
||||||
|
|
||||||
|
// Hint for an early variant of toybox to be used when available.
|
||||||
|
Early bool
|
||||||
|
// Whether to omit output colour environment variables.
|
||||||
|
NoColor bool
|
||||||
|
// Exclude the LLVM toolchain.
|
||||||
|
NoToolchain bool
|
||||||
|
// Whether the resulting [pkg.Artifact] is exclusive.
|
||||||
|
Exclusive bool
|
||||||
|
// Whether to create [pkg.KindExecNet] instead of [pkg.KindExec].
|
||||||
|
HostNet bool
|
||||||
|
|
||||||
// Unregistered extras.
|
// Unregistered extras.
|
||||||
Extra []pkg.Artifact
|
Extra []pkg.Artifact
|
||||||
// Passed through to [Toolchain.New], before source.
|
// Passed through to [Toolchain.New], before source.
|
||||||
Paths []pkg.ExecPath
|
Paths []pkg.ExecPath
|
||||||
// Passed through to [Toolchain.New].
|
|
||||||
Flag int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// pa holds whether an [ArtifactH] is present.
|
// pa holds whether an [ArtifactH] is present.
|
||||||
@@ -462,8 +375,8 @@ func (t Toolchain) Append(a []pkg.Artifact, handles ...ArtifactH) []pkg.Artifact
|
|||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewPackage constructs a [pkg.Artifact] via a build system helper.
|
// New constructs a [pkg.Artifact] via a build system helper.
|
||||||
func (t Toolchain) NewPackage(
|
func (t Toolchain) New(
|
||||||
name, version string,
|
name, version string,
|
||||||
source pkg.Artifact,
|
source pkg.Artifact,
|
||||||
attr *PackageAttr,
|
attr *PackageAttr,
|
||||||
@@ -481,25 +394,102 @@ func (t Toolchain) NewPackage(
|
|||||||
if version != Unversioned {
|
if version != Unversioned {
|
||||||
rn = name + "-" + version
|
rn = name + "-" + version
|
||||||
}
|
}
|
||||||
|
|
||||||
|
root := make([]pkg.Artifact, 0, 1<<3+len(attr.Extra)+len(extra))
|
||||||
|
root = append(root, attr.Extra...)
|
||||||
|
|
||||||
|
const lcMessages = "LC_MESSAGES=C.UTF-8"
|
||||||
|
srn := rn
|
||||||
|
env := slices.Clone(attr.Env)
|
||||||
|
if !attr.NoColor {
|
||||||
|
env = append(env,
|
||||||
|
"CLICOLOR_FORCE=1",
|
||||||
|
"FORCE_COLOR=1",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
var extraBoot []ArtifactH
|
||||||
|
switch t.stage {
|
||||||
|
case stageGentoo, stageEarly:
|
||||||
|
srn += "-boot"
|
||||||
|
root = append(root, NewEtc(true))
|
||||||
|
if t.stage == stageEarly {
|
||||||
|
extraBoot = append(extraBoot, _stage0Dist)
|
||||||
|
} else if t.gentooStage3 == nil {
|
||||||
|
panic(os.ErrInvalid)
|
||||||
|
} else {
|
||||||
|
env = append(env,
|
||||||
|
"CC=clang",
|
||||||
|
"CXX=clang++",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
env = fixupEnviron(env, []string{
|
||||||
|
EnvTriple + "=" + t.triple(),
|
||||||
|
lcMessages,
|
||||||
|
"LDFLAGS=" + t.earlyLDFLAGS(true),
|
||||||
|
}, "/system/bin",
|
||||||
|
"/usr/bin",
|
||||||
|
)
|
||||||
|
|
||||||
|
case stageIntermediateGentoo, stageStdGentoo,
|
||||||
|
stageIntermediate, Std, Stage3:
|
||||||
|
if t.stage.isIntermediate() {
|
||||||
|
srn += "-std"
|
||||||
|
}
|
||||||
|
|
||||||
|
if t.stage == Stage3 {
|
||||||
|
srn += "-stage4"
|
||||||
|
}
|
||||||
|
|
||||||
|
toybox := _toybox
|
||||||
|
if attr.Early {
|
||||||
|
toybox = _toyboxEarly
|
||||||
|
}
|
||||||
|
|
||||||
|
base := _llvm
|
||||||
|
if attr.NoToolchain {
|
||||||
|
base = _musl
|
||||||
|
}
|
||||||
|
|
||||||
|
root = append(root, NewEtc(false))
|
||||||
|
extraBoot = append(extraBoot,
|
||||||
|
base,
|
||||||
|
_mksh,
|
||||||
|
toybox,
|
||||||
|
)
|
||||||
|
env = fixupEnviron(env, []string{
|
||||||
|
EnvTriple + "=" + t.triple(),
|
||||||
|
lcMessages,
|
||||||
|
}, "/system/bin", "/bin")
|
||||||
|
|
||||||
|
default:
|
||||||
|
panic("unsupported toolchain " + strconv.Itoa(int(t.stage)))
|
||||||
|
}
|
||||||
|
|
||||||
wantsChmod, wantsWrite := helper.wantsChmod(), helper.wantsWrite()
|
wantsChmod, wantsWrite := helper.wantsChmod(), helper.wantsWrite()
|
||||||
extraRes := make([]pkg.Artifact, 0, 1<<3+len(attr.Extra)+len(extra))
|
|
||||||
extraRes = append(extraRes, attr.Extra...)
|
|
||||||
{
|
{
|
||||||
pv := paGet()
|
pv := paGet()
|
||||||
for _, p := range helper.extra(attr.Flag) {
|
for _, p := range helper.extra() {
|
||||||
extraRes = t.appendHandle(extraRes, pv, p)
|
root = t.appendHandle(root, pv, p)
|
||||||
}
|
}
|
||||||
for _, p := range extra {
|
for _, p := range extra {
|
||||||
extraRes = t.appendHandle(extraRes, pv, p)
|
root = t.appendHandle(root, pv, p)
|
||||||
|
}
|
||||||
|
boot := t.S.New(t.stage - 1)
|
||||||
|
for _, p := range extraBoot {
|
||||||
|
root = boot.appendHandle(root, pv, p)
|
||||||
}
|
}
|
||||||
paPut(pv)
|
paPut(pv)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
if t.stage == stageGentoo {
|
||||||
scriptEarly string
|
root = append(root,
|
||||||
sourceSuffix string
|
t.gentooStage3,
|
||||||
|
gentooOverlay{t.gentooStage3},
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
var scriptEarly string
|
||||||
dir, create := helper.wantsDir()
|
dir, create := helper.wantsDir()
|
||||||
helperScriptEarly := helper.scriptEarly()
|
helperScriptEarly := helper.scriptEarly()
|
||||||
if attr.EnterSource ||
|
if attr.EnterSource ||
|
||||||
@@ -524,7 +514,7 @@ cd '/usr/src/` + name + `/'
|
|||||||
if source != nil {
|
if source != nil {
|
||||||
paths = slices.Concat(attr.Paths, []pkg.ExecPath{
|
paths = slices.Concat(attr.Paths, []pkg.ExecPath{
|
||||||
pkg.Path(AbsUsrSrc.Append(
|
pkg.Path(AbsUsrSrc.Append(
|
||||||
name+sourceSuffix,
|
name,
|
||||||
), attr.Writable || wantsWrite, t.NewPatchedSource(
|
), attr.Writable || wantsWrite, t.NewPatchedSource(
|
||||||
rn, source, !attr.Chmod && !wantsChmod, attr.Patches...,
|
rn, source, !attr.Chmod && !wantsChmod, attr.Patches...,
|
||||||
)),
|
)),
|
||||||
@@ -551,14 +541,25 @@ ln -s ../bin /usr/`
|
|||||||
scriptEarly += " /bin/)\n"
|
scriptEarly += " /bin/)\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
return t.New(
|
return pkg.NewExec(
|
||||||
rn,
|
srn, t.arch, attr.KnownChecksum, pkg.ExecTimeoutMax,
|
||||||
attr.Flag,
|
attr.HostNet,
|
||||||
extraRes,
|
attr.Exclusive,
|
||||||
attr.KnownChecksum,
|
fhs.AbsRoot, env,
|
||||||
attr.Env,
|
absCureScript,
|
||||||
|
nil,
|
||||||
|
|
||||||
|
slices.Concat([]pkg.ExecPath{pkg.Path(
|
||||||
|
fhs.AbsRoot, true,
|
||||||
|
root...,
|
||||||
|
), pkg.Path(
|
||||||
|
absCureScript, false,
|
||||||
|
pkg.NewFile(scriptName, []byte(
|
||||||
|
"#!/system/bin/sh\n"+
|
||||||
|
"set -eu -o pipefail\n"+
|
||||||
scriptEarly+helper.script(t, name),
|
scriptEarly+helper.script(t, name),
|
||||||
paths...,
|
)),
|
||||||
|
)}, paths)...,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,7 +577,7 @@ type GenericHelper struct {
|
|||||||
var _ Helper = new(GenericHelper)
|
var _ Helper = new(GenericHelper)
|
||||||
|
|
||||||
// extra is a noop.
|
// extra is a noop.
|
||||||
func (*GenericHelper) extra(int) P { return nil }
|
func (*GenericHelper) extra() P { return nil }
|
||||||
|
|
||||||
// wantsChmod returns false.
|
// wantsChmod returns false.
|
||||||
func (*GenericHelper) wantsChmod() bool { return false }
|
func (*GenericHelper) wantsChmod() bool { return false }
|
||||||
|
|||||||
@@ -58,11 +58,11 @@ func getCache(t *testing.T) *pkg.Cache {
|
|||||||
ctx, buildTestCacheCancel = signal.NotifyContext(context.Background(),
|
ctx, buildTestCacheCancel = signal.NotifyContext(context.Background(),
|
||||||
syscall.SIGINT, syscall.SIGTERM)
|
syscall.SIGINT, syscall.SIGTERM)
|
||||||
|
|
||||||
msg := message.New(log.New(os.Stderr, "rosa: ", 0))
|
msg := message.New(log.New(os.Stderr, "\x1b[2mrosa: \x1b[0m", 0))
|
||||||
msg.SwapVerbose(true)
|
msg.SwapVerbose(true)
|
||||||
|
|
||||||
if buildTestCache, err = pkg.Open(ctx, msg, a, &pkg.CacheAttr{
|
if buildTestCache, err = pkg.Open(ctx, msg, a, &pkg.CacheAttr{
|
||||||
Flags: pkg.CSuppressInit,
|
Flags: pkg.CSuppressInit | pkg.CColourOutput,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-19
@@ -989,9 +989,6 @@ func (ctx *evalContext) pf(
|
|||||||
attr PackageAttr
|
attr PackageAttr
|
||||||
patches []string
|
patches []string
|
||||||
files []KV
|
files []KV
|
||||||
excl bool
|
|
||||||
early bool
|
|
||||||
minimal bool
|
|
||||||
|
|
||||||
anitya int64
|
anitya int64
|
||||||
kc any
|
kc any
|
||||||
@@ -1020,9 +1017,9 @@ func (ctx *evalContext) pf(
|
|||||||
k("populateUsrBin"): &attr.PopulateUsrBin,
|
k("populateUsrBin"): &attr.PopulateUsrBin,
|
||||||
k("patches"): &patches,
|
k("patches"): &patches,
|
||||||
k("files"): &files,
|
k("files"): &files,
|
||||||
k("exclusive"): &excl,
|
k("exclusive"): &attr.Exclusive,
|
||||||
k("toyboxEarly"): &early,
|
k("toyboxEarly"): &attr.Early,
|
||||||
k("minimal"): &minimal,
|
k("minimal"): &attr.NoToolchain,
|
||||||
|
|
||||||
k("checksum"): &kc,
|
k("checksum"): &kc,
|
||||||
k("output"): &output,
|
k("output"): &output,
|
||||||
@@ -1116,16 +1113,6 @@ func (ctx *evalContext) pf(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if excl {
|
|
||||||
attr.Flag |= TExclusive
|
|
||||||
}
|
|
||||||
if early {
|
|
||||||
attr.Flag |= TEarly
|
|
||||||
}
|
|
||||||
if minimal {
|
|
||||||
attr.Flag |= TNoToolchain
|
|
||||||
}
|
|
||||||
|
|
||||||
if kc != nil {
|
if kc != nil {
|
||||||
checksum, ok := kc.(string)
|
checksum, ok := kc.(string)
|
||||||
if !ok {
|
if !ok {
|
||||||
@@ -1162,7 +1149,7 @@ func (ctx *evalContext) pf(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
v = cachedArtifact{&meta, ctx.t.NewPackage(
|
v = cachedArtifact{&meta, ctx.t.New(
|
||||||
meta.Name,
|
meta.Name,
|
||||||
meta.Version,
|
meta.Version,
|
||||||
source,
|
source,
|
||||||
@@ -1175,8 +1162,8 @@ func (ctx *evalContext) pf(
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// ErrToplevel is returned by [S.Evaluate] when encountering a toplevel
|
// ErrToplevel is returned by [S.RegisterAzalea] when encountering a
|
||||||
// expression other than a package declaration.
|
// toplevel expression other than a package declaration.
|
||||||
ErrToplevel = errors.New("top level must only contain package declarations")
|
ErrToplevel = errors.New("top level must only contain package declarations")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user