iris: Drop vtbl usage for some load_register calls
[mesa.git] / src / gallium / drivers / iris / iris_screen.h
index a8f33dc32368676e80c4db97dfd32451c3028308..60ff15904a7cd948f42089ac4124847ec93ad320 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "pipe/p_screen.h"
 #include "state_tracker/drm_driver.h"
+#include "util/disk_cache.h"
 #include "util/slab.h"
 #include "util/u_screen.h"
 #include "intel/dev/gen_device_info.h"
@@ -32,6 +33,7 @@
 #include "iris_bufmgr.h"
 
 struct iris_bo;
+struct iris_monitor_config;
 
 #define READ_ONCE(x) (*(volatile __typeof__(x) *)&(x))
 #define WRITE_ONCE(x, v) *(volatile __typeof__(x) *)&(x) = (v)
@@ -64,26 +66,33 @@ struct iris_screen {
    struct {
       /** Dual color blend by location instead of index (for broken apps) */
       bool dual_color_blend_by_location;
+      bool disable_throttling;
+      bool always_flush_cache;
    } driconf;
 
    unsigned subslice_total;
 
+   uint64_t aperture_bytes;
+
    struct gen_device_info devinfo;
    struct isl_device isl_dev;
    struct iris_bufmgr *bufmgr;
    struct brw_compiler *compiler;
+   struct iris_monitor_config *monitor_cfg;
 
    /**
     * A buffer containing nothing useful, for hardware workarounds that
     * require scratch writes or reads from some unimportant memory.
     */
    struct iris_bo *workaround_bo;
+
+   struct disk_cache *disk_cache;
 };
 
 struct pipe_screen *
 iris_screen_create(int fd, const struct pipe_screen_config *config);
 
-boolean
+bool
 iris_is_format_supported(struct pipe_screen *pscreen,
                          enum pipe_format format,
                          enum pipe_texture_target target,
@@ -91,4 +100,6 @@ iris_is_format_supported(struct pipe_screen *pscreen,
                          unsigned storage_sample_count,
                          unsigned usage);
 
+void iris_disk_cache_init(struct iris_screen *screen);
+
 #endif