mirror of
https://github.com/fumiama/gozel.git
synced 2026-06-05 00:10:24 +08:00
fix(examples): some platform not support double
This commit is contained in:
26
ze/module.go
26
ze/module.go
@@ -1,7 +1,9 @@
|
||||
package ze
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"runtime"
|
||||
"strings"
|
||||
|
||||
"github.com/fumiama/gozel"
|
||||
)
|
||||
@@ -13,14 +15,34 @@ type ModuleHandle gozel.ZeModuleHandle
|
||||
func (h ContextHandle) ModuleCreate(hDevice gozel.ZeDeviceHandle, data []byte) (
|
||||
ModuleHandle, error,
|
||||
) {
|
||||
var m gozel.ZeModuleHandle
|
||||
var (
|
||||
m gozel.ZeModuleHandle
|
||||
lg gozel.ZeModuleBuildLogHandle
|
||||
)
|
||||
_, err := gozel.ZeModuleCreate(gozel.ZeContextHandle(h), hDevice, &gozel.ZeModuleDesc{
|
||||
Stype: gozel.ZE_STRUCTURE_TYPE_MODULE_DESC,
|
||||
Format: gozel.ZE_MODULE_FORMAT_IL_SPIRV,
|
||||
Inputsize: uintptr(len(data)),
|
||||
Pinputmodule: &data[0],
|
||||
}, &m, nil)
|
||||
}, &m, &lg)
|
||||
runtime.KeepAlive(data)
|
||||
defer gozel.ZeModuleBuildLogDestroy(lg)
|
||||
if err != nil {
|
||||
var lgsz uintptr
|
||||
_, errlg := gozel.ZeModuleBuildLogGetString(lg, &lgsz, nil)
|
||||
if errlg == nil {
|
||||
data := make([]byte, lgsz)
|
||||
_, errlg := gozel.ZeModuleBuildLogGetString(lg, &lgsz, &data[0])
|
||||
runtime.KeepAlive(data)
|
||||
if errlg == nil {
|
||||
sb := strings.Builder{}
|
||||
sb.WriteString(err.Error())
|
||||
sb.WriteString(", build log: ")
|
||||
sb.Write(data)
|
||||
err = errors.New(sb.String())
|
||||
}
|
||||
}
|
||||
}
|
||||
return ModuleHandle(m), err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user