mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
Add checks for NULL dxil_validator
Fixes https://gitlab.freedesktop.org/mesa/mesa/-/issues/8718 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22141>
This commit is contained in:
parent
7f7b2fc53a
commit
098342ce53
3 changed files with 12 additions and 5 deletions
|
|
@ -75,8 +75,7 @@ d3d12_context_destroy(struct pipe_context *pctx)
|
|||
mtx_unlock(&screen->submit_mutex);
|
||||
|
||||
#ifdef _WIN32
|
||||
if (ctx->dxil_validator)
|
||||
dxil_destroy_validator(ctx->dxil_validator);
|
||||
dxil_destroy_validator(ctx->dxil_validator);
|
||||
#endif
|
||||
|
||||
#ifndef _GAMING_XBOX
|
||||
|
|
|
|||
|
|
@ -237,6 +237,9 @@ fail:
|
|||
void
|
||||
dxil_destroy_validator(struct dxil_validator *val)
|
||||
{
|
||||
if (!val)
|
||||
return;
|
||||
|
||||
/* if we have a validator, we have these */
|
||||
val->dxc_validator->Release();
|
||||
FreeLibrary(val->dxil_mod);
|
||||
|
|
@ -299,6 +302,9 @@ public:
|
|||
bool
|
||||
dxil_validate_module(struct dxil_validator *val, void *data, size_t size, char **error)
|
||||
{
|
||||
if (!val)
|
||||
return false;
|
||||
|
||||
ShaderBlob source(data, size);
|
||||
|
||||
ComPtr<IDxcOperationResult> result;
|
||||
|
|
@ -337,6 +343,9 @@ dxil_validate_module(struct dxil_validator *val, void *data, size_t size, char *
|
|||
char *
|
||||
dxil_disasm_module(struct dxil_validator *val, void *data, size_t size)
|
||||
{
|
||||
if (!val)
|
||||
return NULL;
|
||||
|
||||
if (!val->dxc_compiler || !val->dxc_library) {
|
||||
fprintf(stderr, "DXIL: disassembly requires IDxcLibrary and "
|
||||
"IDxcCompiler from dxcompiler.dll\n");
|
||||
|
|
@ -364,5 +373,5 @@ dxil_disasm_module(struct dxil_validator *val, void *data, size_t size)
|
|||
enum dxil_validator_version
|
||||
dxil_get_validator_version(struct dxil_validator *val)
|
||||
{
|
||||
return val->version;
|
||||
return val ? val->version : NO_DXIL_VALIDATION;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -219,8 +219,7 @@ dzn_instance_destroy(struct dzn_instance *instance, const VkAllocationCallbacks
|
|||
vk_instance_finish(&instance->vk);
|
||||
|
||||
#ifdef _WIN32
|
||||
if (instance->dxil_validator)
|
||||
dxil_destroy_validator(instance->dxil_validator);
|
||||
dxil_destroy_validator(instance->dxil_validator);
|
||||
#endif
|
||||
|
||||
if (instance->factory)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue