Add error handler
This commit is contained in:
parent
fa103bcdf6
commit
c44a6858e0
6 changed files with 104 additions and 39 deletions
|
|
@ -1,7 +1,9 @@
|
|||
import { ErrorHandler, Severity } from '../error-handler';
|
||||
|
||||
export const initializeGPU = async (): Promise<GPUDevice> => {
|
||||
const gpu = navigator.gpu;
|
||||
if (!gpu) {
|
||||
throw new Error('WebGPU is not supported');
|
||||
throw new Error('WebGPU is not supported in your browser');
|
||||
}
|
||||
|
||||
const adapter = await gpu.requestAdapter({
|
||||
|
|
@ -12,5 +14,15 @@ export const initializeGPU = async (): Promise<GPUDevice> => {
|
|||
throw new Error('Could not request adatper');
|
||||
}
|
||||
|
||||
return await adapter.requestDevice(); // could request more resources
|
||||
ErrorHandler.addMetadata('adapter', await adapter.requestAdapterInfo());
|
||||
ErrorHandler.addMetadata('features', adapter.features);
|
||||
ErrorHandler.addMetadata('limits', adapter.limits);
|
||||
|
||||
const gpuDevice = await adapter.requestDevice(); // could request more resources
|
||||
|
||||
gpuDevice.addEventListener('uncapturederror', (event: GPUUncapturedErrorEvent) =>
|
||||
ErrorHandler.addError(Severity.ERROR, event.error.message)
|
||||
);
|
||||
|
||||
return gpuDevice;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import { ErrorHandler, Severity } from '../error-handler';
|
||||
|
||||
export const smartCompile = (device: GPUDevice, ...code: Array<string>) => {
|
||||
const concatenated = code.join('\n\n');
|
||||
|
||||
|
|
@ -5,17 +7,18 @@ export const smartCompile = (device: GPUDevice, ...code: Array<string>) => {
|
|||
code: concatenated,
|
||||
});
|
||||
|
||||
module
|
||||
.getCompilationInfo()
|
||||
.then((info) =>
|
||||
info.messages.forEach((message) =>
|
||||
console.warn(
|
||||
message.type,
|
||||
message.message,
|
||||
concatenated.split('\n')[message.lineNum - 1]
|
||||
)
|
||||
module.getCompilationInfo().then((info) =>
|
||||
info.messages.forEach((message) =>
|
||||
ErrorHandler.addError(
|
||||
{
|
||||
info: Severity.INFO,
|
||||
warning: Severity.WARNING,
|
||||
error: Severity.ERROR,
|
||||
}[message.type],
|
||||
`${message.message}\n${concatenated.split('\n')[message.lineNum - 1]}`
|
||||
)
|
||||
);
|
||||
)
|
||||
);
|
||||
|
||||
return module;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue