1
0
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:
源文雨
2026-03-25 17:20:16 +08:00
parent d86e2a59d5
commit 32ada81b80
5 changed files with 67 additions and 47 deletions

View File

@@ -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
}