X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmesa%2Fdrivers%2Fdri%2Fi915%2Fintel_context.h;h=a8339896f65f270904b4e7a05b3976edf67737b7;hb=ff7521c9bac3d52f645c68deac7084e20b81b2f5;hp=b9124c1f8015191c944ffd2a44001b93999ca720;hpb=3c231b863160d82cd6cc85724c53e5bcb4ca03e1;p=mesa.git diff --git a/src/mesa/drivers/dri/i915/intel_context.h b/src/mesa/drivers/dri/i915/intel_context.h index b9124c1f801..a8339896f65 100644 --- a/src/mesa/drivers/dri/i915/intel_context.h +++ b/src/mesa/drivers/dri/i915/intel_context.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2003 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -32,24 +32,14 @@ #include #include #include "main/mtypes.h" -#include "main/mm.h" +#include "main/errors.h" -#ifdef __cplusplus -extern "C" { - /* Evil hack for using libdrm in a c++ compiler. */ - #define virtual virt -#endif - -#include "drm.h" -#include "intel_bufmgr.h" +#include +#include +#include #include "intel_screen.h" #include "intel_tex_obj.h" -#include "i915_drm.h" - -#ifdef __cplusplus - #undef virtual -#endif #include "tnl/t_vertex.h" @@ -95,8 +85,6 @@ extern void intelFallback(struct intel_context *intel, GLbitfield bit, #define INTEL_WRITE_FULL 0x2 #define INTEL_READ 0x4 -#define INTEL_MAX_FIXUP 64 - #ifndef likely #ifdef __GNUC__ #define likely(expr) (__builtin_expect(expr, 1)) @@ -107,13 +95,6 @@ extern void intelFallback(struct intel_context *intel, GLbitfield bit, #endif #endif -struct intel_sync_object { - struct gl_sync_object Base; - - /** Batch associated with this sync object */ - drm_intel_bo *bo; -}; - struct intel_batchbuffer { /** Current batchbuffer being queued up. */ drm_intel_bo *bo; @@ -228,7 +209,6 @@ struct intel_context GLfloat polygon_offset_scale; /* dependent on depth_scale, bpp */ - bool hw_stencil; bool hw_stipple; bool no_rast; bool always_flush_batch; @@ -251,37 +231,17 @@ struct intel_context intel_tri_func draw_tri; /** - * Set if rendering has occured to the drawable's front buffer. + * Set if rendering has occurred to the drawable's front buffer. * * This is used in the DRI2 case to detect that glFlush should also copy * the contents of the fake front buffer to the real front buffer. */ bool front_buffer_dirty; - /** - * Track whether front-buffer rendering is currently enabled - * - * A separate flag is used to track this in order to support MRT more - * easily. - */ - bool is_front_buffer_rendering; - /** - * Track whether front-buffer is the current read target. - * - * This is closely associated with is_front_buffer_rendering, but may - * be set separately. The DRI2 fake front buffer must be referenced - * either way. - */ - bool is_front_buffer_reading; - bool use_early_z; - int driFd; - __DRIcontext *driContext; struct intel_screen *intelScreen; - void (*saved_viewport)(struct gl_context * ctx, - GLint x, GLint y, GLsizei width, GLsizei height); /** * Configuration cache @@ -295,66 +255,12 @@ extern char *__progname; #define SUBPIXEL_X 0.125 #define SUBPIXEL_Y 0.125 -/** - * Align a value down to an alignment value - * - * If \c value is not already aligned to the requested alignment value, it - * will be rounded down. - * - * \param value Value to be rounded - * \param alignment Alignment value to be used. This must be a power of two. - * - * \sa ALIGN() - */ -#define ROUND_DOWN_TO(value, alignment) ((value) & ~(alignment - 1)) - -static INLINE uint32_t -U_FIXED(float value, uint32_t frac_bits) -{ - value *= (1 << frac_bits); - return value < 0 ? 0 : value; -} - -static INLINE uint32_t -S_FIXED(float value, uint32_t frac_bits) -{ - return value * (1 << frac_bits); -} - #define INTEL_FIREVERTICES(intel) \ do { \ if ((intel)->prim.flush) \ (intel)->prim.flush(intel); \ } while (0) -/* ================================================================ - * From linux kernel i386 header files, copes with odd sizes better - * than COPY_DWORDS would: - * XXX Put this in src/mesa/main/imports.h ??? - */ -#if defined(i386) || defined(__i386__) -static INLINE void * __memcpy(void * to, const void * from, size_t n) -{ - int d0, d1, d2; - __asm__ __volatile__( - "rep ; movsl\n\t" - "testb $2,%b4\n\t" - "je 1f\n\t" - "movsw\n" - "1:\ttestb $1,%b4\n\t" - "je 2f\n\t" - "movsb\n" - "2:" - : "=&c" (d0), "=&D" (d1), "=&S" (d2) - :"0" (n/4), "q" (n),"1" ((long) to),"2" ((long) from) - : "memory"); - return (to); -} -#else -#define __memcpy(a,b,c) memcpy(a,b,c) -#endif - - /* ================================================================ * Debugging: */ @@ -378,7 +284,11 @@ extern int INTEL_DEBUG; #ifdef HAVE_ANDROID_PLATFORM #define LOG_TAG "INTEL-MESA" +#if ANDROID_API_LEVEL >= 26 +#include +#else #include +#endif /* use log/log.h start from android 8 major version */ #ifndef ALOGW #define ALOGW LOGW #endif @@ -398,6 +308,7 @@ extern int INTEL_DEBUG; dbg_printf(__VA_ARGS__); \ if (intel->perf_debug) \ _mesa_gl_debug(&intel->ctx, &msg_id, \ + MESA_DEBUG_SOURCE_API, \ MESA_DEBUG_TYPE_PERFORMANCE, \ MESA_DEBUG_SEVERITY_MEDIUM, \ __VA_ARGS__); \ @@ -413,6 +324,7 @@ extern int INTEL_DEBUG; _warned = true; \ \ _mesa_gl_debug(ctx, &msg_id, \ + MESA_DEBUG_SOURCE_API, \ MESA_DEBUG_TYPE_OTHER, \ MESA_DEBUG_SEVERITY_HIGH, fmt); \ } \ @@ -423,10 +335,15 @@ extern int INTEL_DEBUG; * intel_context.c: */ +extern const char *const i915_vendor_string; + +extern const char *i915_get_renderer_string(unsigned deviceID); + extern bool intelInitContext(struct intel_context *intel, int api, unsigned major_version, unsigned minor_version, + uint32_t flags, const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate, @@ -509,7 +426,6 @@ extern int intel_translate_shadow_compare_func(GLenum func); extern int intel_translate_compare_func(GLenum func); extern int intel_translate_stencil_op(GLenum op); extern int intel_translate_blend_factor(GLenum factor); -extern int intel_translate_logic_op(GLenum opcode); void intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable); @@ -523,20 +439,10 @@ void intel_init_texture_formats(struct gl_context *ctx); * Inline conversion functions. * These are better-typed than the macros used previously: */ -static INLINE struct intel_context * +static inline struct intel_context * intel_context(struct gl_context * ctx) { return (struct intel_context *) ctx; } -static INLINE bool -is_power_of_two(uint32_t value) -{ - return (value & (value - 1)) == 0; -} - -#ifdef __cplusplus -} -#endif - #endif