radv: set writes_memory for global memory stores/atomics
[mesa.git] / src / gallium / auxiliary / util / u_upload_mgr.h
index 536467eb35c696535aa9ea6154c8ea96cf88f53d..6a4a60963feef4fe848f1868b24a48e467e4d4fd 100644 (file)
@@ -49,10 +49,11 @@ extern "C" {
  * \param default_size  Minimum size of the upload buffer, in bytes.
  * \param bind          Bitmask of PIPE_BIND_* flags.
  * \param usage         PIPE_USAGE_*
+ * \param flags         bitmask of PIPE_RESOURCE_FLAG_* flags.
  */
 struct u_upload_mgr *
 u_upload_create(struct pipe_context *pipe, unsigned default_size,
-                unsigned bind, enum pipe_resource_usage usage);
+                unsigned bind, enum pipe_resource_usage usage, unsigned flags);
 
 /**
  * Create the default uploader for pipe_context. Only pipe_context::screen
@@ -68,6 +69,14 @@ u_upload_create_default(struct pipe_context *pipe);
 struct u_upload_mgr *
 u_upload_clone(struct pipe_context *pipe, struct u_upload_mgr *upload);
 
+/** Whether to use FLUSH_EXPLICIT with persistent mappings. */
+void
+u_upload_enable_flush_explicit(struct u_upload_mgr *upload);
+
+/** Whether to avoid persistent mappings where available */
+void
+u_upload_disable_persistent(struct u_upload_mgr *upload);
+
 /**
  * Destroy the upload manager.
  */