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,
|
||||
)
|
||||
|
||||
inc_nir = include_directories('.')
|
||||
|
||||
# Headers-only dependency
|
||||
idep_nir_headers = declare_dependency(
|
||||
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
|
||||
|
@@ -1 +1,2 @@
|
||||
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(
|
||||
'mesa/lib.rs',
|
||||
'mesa/compiler/mod.rs',
|
||||
'mesa/compiler/nir.rs',
|
||||
'mesa/compiler/clc/mod.rs',
|
||||
'mesa/compiler/clc/spirv.rs',
|
||||
'mesa/pipe/context.rs',
|
||||
@@ -167,16 +168,20 @@ rusticl_mesa_bindings_rs = rust.bindgen(
|
||||
input : 'rusticl_mesa_bindings.h',
|
||||
output : 'rusticl_mesa_bindings.rs',
|
||||
include_directories : [
|
||||
inc_compiler,
|
||||
inc_gallium,
|
||||
inc_gallium_aux,
|
||||
inc_include,
|
||||
inc_nir,
|
||||
inc_src,
|
||||
],
|
||||
c_args : pre_args,
|
||||
args : [
|
||||
rusticl_bindgen_args,
|
||||
'--whitelist-function', 'clc_.*',
|
||||
'--whitelist-function', 'nir_.*',
|
||||
'--whitelist-function', 'pipe_.*',
|
||||
'--whitelist-function', 'ralloc_.*',
|
||||
'--whitelist-type', 'pipe_endian',
|
||||
'--whitelist-type', 'clc_kernel_arg_access_qualifier',
|
||||
'--bitfield-enum', 'clc_kernel_arg_access_qualifier',
|
||||
|
@@ -2,6 +2,8 @@
|
||||
|
||||
#include "compiler/clc/clc.h"
|
||||
|
||||
#include "nir.h"
|
||||
|
||||
#include "pipe/p_context.h"
|
||||
#include "pipe/p_defines.h"
|
||||
#include "pipe/p_screen.h"
|
||||
|
Reference in New Issue
Block a user