rusticl: use fallback path when pipe->clear_texture is not available
authorItalo Nicola <italonicola@collabora.com>
Wed, 21 Jun 2023 14:46:02 +0000 (14:46 +0000)
committerMarge Bot <emma+marge@anholt.net>
Mon, 10 Jul 2023 15:23:06 +0000 (15:23 +0000)
Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23735>

src/gallium/frontends/rusticl/mesa/pipe/context.rs
src/gallium/frontends/rusticl/rusticl_mesa_bindings.h

index 90edc2a6612d2e9d3a7408a41d05f487c39826f9..e65f3447c6087f031a3bf7868c074a9984a9c334 100644 (file)
@@ -160,7 +160,12 @@ impl PipeContext {
 
     pub fn clear_texture(&self, res: &PipeResource, pattern: &[u32], bx: &pipe_box) {
         unsafe {
-            self.pipe.as_ref().clear_texture.unwrap()(
+            let clear_texture = self
+                .pipe
+                .as_ref()
+                .clear_texture
+                .unwrap_or(u_default_clear_texture);
+            clear_texture(
                 self.pipe.as_ptr(),
                 res.pipe(),
                 0,
@@ -571,7 +576,6 @@ fn has_required_cbs(context: &pipe_context) -> bool {
         & has_required_feature!(context, buffer_subdata)
         & has_required_feature!(context, buffer_unmap)
         & has_required_feature!(context, clear_buffer)
-        & has_required_feature!(context, clear_texture)
         & has_required_feature!(context, create_compute_state)
         & has_required_feature!(context, delete_compute_state)
         & has_required_feature!(context, delete_sampler_state)
index e96efdaf2b9c1a692ba68073771714492124b78d..43b4fc1e0fef270cf62df66f3d4381620329b4b9 100644 (file)
@@ -21,5 +21,6 @@
 #include "util/sha1/sha1.h"
 #include "util/u_printf.h"
 #include "util/u_sampler.h"
+#include "util/u_surface.h"
 
 #include "rusticl_nir.h"