rusticl: nir bindings
Signed-off-by: Karol Herbst <kherbst@redhat.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
This commit is contained in:
@@ -372,10 +372,12 @@ _libnir = static_library(
|
|||||||
build_by_default : false,
|
build_by_default : false,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
inc_nir = include_directories('.')
|
||||||
|
|
||||||
# Headers-only dependency
|
# Headers-only dependency
|
||||||
idep_nir_headers = declare_dependency(
|
idep_nir_headers = declare_dependency(
|
||||||
sources : [nir_opcodes_h, nir_builder_opcodes_h, nir_intrinsics_h, nir_intrinsics_indices_h],
|
sources : [nir_opcodes_h, nir_builder_opcodes_h, nir_intrinsics_h, nir_intrinsics_indices_h],
|
||||||
include_directories : include_directories('.'),
|
include_directories : inc_nir,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Also link with nir
|
# Also link with nir
|
||||||
|
@@ -1 +1,2 @@
|
|||||||
pub mod clc;
|
pub mod clc;
|
||||||
|
pub mod nir;
|
||||||
|
15
src/gallium/frontends/rusticl/mesa/compiler/nir.rs
Normal file
15
src/gallium/frontends/rusticl/mesa/compiler/nir.rs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
extern crate mesa_rust_gen;
|
||||||
|
|
||||||
|
use self::mesa_rust_gen::*;
|
||||||
|
|
||||||
|
use std::ptr::NonNull;
|
||||||
|
|
||||||
|
pub struct NirShader {
|
||||||
|
nir: NonNull<nir_shader>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Drop for NirShader {
|
||||||
|
fn drop(&mut self) {
|
||||||
|
unsafe { ralloc_free(self.nir.as_ptr().cast()) };
|
||||||
|
}
|
||||||
|
}
|
@@ -31,6 +31,7 @@ libmesa_rust_util_files = files(
|
|||||||
libmesa_rust_files = files(
|
libmesa_rust_files = files(
|
||||||
'mesa/lib.rs',
|
'mesa/lib.rs',
|
||||||
'mesa/compiler/mod.rs',
|
'mesa/compiler/mod.rs',
|
||||||
|
'mesa/compiler/nir.rs',
|
||||||
'mesa/compiler/clc/mod.rs',
|
'mesa/compiler/clc/mod.rs',
|
||||||
'mesa/compiler/clc/spirv.rs',
|
'mesa/compiler/clc/spirv.rs',
|
||||||
'mesa/pipe/context.rs',
|
'mesa/pipe/context.rs',
|
||||||
@@ -167,16 +168,20 @@ rusticl_mesa_bindings_rs = rust.bindgen(
|
|||||||
input : 'rusticl_mesa_bindings.h',
|
input : 'rusticl_mesa_bindings.h',
|
||||||
output : 'rusticl_mesa_bindings.rs',
|
output : 'rusticl_mesa_bindings.rs',
|
||||||
include_directories : [
|
include_directories : [
|
||||||
|
inc_compiler,
|
||||||
inc_gallium,
|
inc_gallium,
|
||||||
inc_gallium_aux,
|
inc_gallium_aux,
|
||||||
inc_include,
|
inc_include,
|
||||||
|
inc_nir,
|
||||||
inc_src,
|
inc_src,
|
||||||
],
|
],
|
||||||
c_args : pre_args,
|
c_args : pre_args,
|
||||||
args : [
|
args : [
|
||||||
rusticl_bindgen_args,
|
rusticl_bindgen_args,
|
||||||
'--whitelist-function', 'clc_.*',
|
'--whitelist-function', 'clc_.*',
|
||||||
|
'--whitelist-function', 'nir_.*',
|
||||||
'--whitelist-function', 'pipe_.*',
|
'--whitelist-function', 'pipe_.*',
|
||||||
|
'--whitelist-function', 'ralloc_.*',
|
||||||
'--whitelist-type', 'pipe_endian',
|
'--whitelist-type', 'pipe_endian',
|
||||||
'--whitelist-type', 'clc_kernel_arg_access_qualifier',
|
'--whitelist-type', 'clc_kernel_arg_access_qualifier',
|
||||||
'--bitfield-enum', 'clc_kernel_arg_access_qualifier',
|
'--bitfield-enum', 'clc_kernel_arg_access_qualifier',
|
||||||
|
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
#include "compiler/clc/clc.h"
|
#include "compiler/clc/clc.h"
|
||||||
|
|
||||||
|
#include "nir.h"
|
||||||
|
|
||||||
#include "pipe/p_context.h"
|
#include "pipe/p_context.h"
|
||||||
#include "pipe/p_defines.h"
|
#include "pipe/p_defines.h"
|
||||||
#include "pipe/p_screen.h"
|
#include "pipe/p_screen.h"
|
||||||
|
Reference in New Issue
Block a user