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:
Karol Herbst
2022-03-10 23:42:44 +01:00
committed by Marge Bot
parent e8de580998
commit 46ee5988cd
5 changed files with 26 additions and 1 deletions

View File

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

View File

@@ -1 +1,2 @@
pub mod clc;
pub mod nir;

View 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()) };
}
}

View File

@@ -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',

View File

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