#include <stdbool.h>
#include <assert.h>
#include "main/formats.h"
+#include "main/macros.h"
#include "intel_context.h"
+#include "intel_mipmap_tree.h"
#include "intel_screen.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct intel_context;
struct intel_mipmap_tree;
struct intel_texture_image;
*/
struct intel_renderbuffer
{
- struct gl_renderbuffer Base;
+ struct swrast_renderbuffer Base;
struct intel_mipmap_tree *mt; /**< The renderbuffer storage. */
- drm_intel_bo *map_bo;
/**
* \name Miptree view
intel_renderbuffer(struct gl_renderbuffer *rb)
{
struct intel_renderbuffer *irb = (struct intel_renderbuffer *) rb;
- if (irb && irb->Base.ClassID == INTEL_RB_CLASS) {
+ if (irb && irb->Base.Base.ClassID == INTEL_RB_CLASS) {
/*_mesa_warning(NULL, "Returning non-intel Rb\n");*/
return irb;
}
return intel_renderbuffer(rb);
}
-bool
-intel_framebuffer_has_hiz(struct gl_framebuffer *fb);
+
+static INLINE gl_format
+intel_rb_format(const struct intel_renderbuffer *rb)
+{
+ return rb->Base.Base.Format;
+}
extern struct intel_renderbuffer *
-intel_create_renderbuffer(gl_format format);
+intel_create_renderbuffer(gl_format format, unsigned num_samples);
+
+struct intel_renderbuffer *
+intel_create_private_renderbuffer(gl_format format, unsigned num_samples);
struct gl_renderbuffer*
intel_create_wrapped_renderbuffer(struct gl_context * ctx,
int width, int height,
gl_format format);
-GLboolean
-intel_alloc_renderbuffer_storage(struct gl_context * ctx,
- struct gl_renderbuffer *rb,
- GLenum internalFormat,
- GLuint width, GLuint height);
-
extern void
intel_fbo_init(struct intel_context *intel);
void
intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb);
-uint32_t
-intel_renderbuffer_tile_offsets(struct intel_renderbuffer *irb,
- uint32_t *tile_x,
- uint32_t *tile_y);
+static inline uint32_t
+intel_renderbuffer_get_tile_offsets(struct intel_renderbuffer *irb,
+ uint32_t *tile_x,
+ uint32_t *tile_y)
+{
+ return intel_miptree_get_tile_offsets(irb->mt, irb->mt_level, irb->mt_layer,
+ tile_x, tile_y);
+}
struct intel_region*
intel_get_rb_region(struct gl_framebuffer *fb, GLuint attIndex);
+void
+intel_renderbuffer_set_needs_downsample(struct intel_renderbuffer *irb);
+
+bool
+intel_renderbuffer_has_hiz(struct intel_renderbuffer *irb);
+
void
intel_renderbuffer_set_needs_hiz_resolve(struct intel_renderbuffer *irb);
intel_renderbuffer_resolve_depth(struct intel_context *intel,
struct intel_renderbuffer *irb);
+void intel_renderbuffer_move_to_temp(struct intel_context *intel,
+ struct intel_renderbuffer *irb,
+ bool invalidate);
+
+unsigned
+intel_quantize_num_samples(struct intel_screen *intel, unsigned num_samples);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif /* INTEL_FBO_H */