mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-12-03 21:23:15 +00:00
i965: Add support for NV_conditional_render.
Since we lack hardware support for it, this is a simple matter of checking _mesa_check_conditional_render at the entrypoints, and suppressing it for the metaops where it doesn't apply. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
332822bd3d
commit
1df72402d9
@ -13,7 +13,7 @@ Feature Status
|
||||
GL 3.0:
|
||||
|
||||
GLSL 1.30 (GL_EXT_gpu_shader4, etc.) started
|
||||
Conditional rendering (GL_NV_conditional_render) DONE (swrast & softpipe)
|
||||
Conditional rendering (GL_NV_conditional_render) DONE (swrast, softpipe, i965)
|
||||
Map buffer subranges (GL_ARB_map_buffer_range) DONE
|
||||
Clamping controls (GL_ARB_color_buffer_float) DONE
|
||||
Float textures, renderbuffers (GL_ARB_texture_float) DONE (gallium r300)
|
||||
|
@ -51,6 +51,7 @@ tbd
|
||||
<li>GL_ATI_draw_buffers (all drivers)
|
||||
<li>GL_ATI_texture_compression_3dc (gallium drivers, swrast)
|
||||
<li>GL_ATI_texture_float (gallium, i965)
|
||||
<li>GL_NV_conditional_render (i965)
|
||||
<li>GL_NV_texture_barrier (gallium drivers)
|
||||
</ul>
|
||||
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
#include "main/glheader.h"
|
||||
#include "main/context.h"
|
||||
#include "main/condrender.h"
|
||||
#include "main/state.h"
|
||||
#include "main/enums.h"
|
||||
#include "tnl/tnl.h"
|
||||
@ -438,6 +439,9 @@ void brw_draw_prims( struct gl_context *ctx,
|
||||
{
|
||||
GLboolean retval;
|
||||
|
||||
if (!_mesa_check_conditional_render(ctx))
|
||||
return;
|
||||
|
||||
if (!vbo_all_varyings_in_vbos(arrays)) {
|
||||
if (!index_bounds_valid)
|
||||
vbo_get_minmax_index(ctx, prim, ib, &min_index, &max_index);
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
#include "main/glheader.h"
|
||||
#include "main/mtypes.h"
|
||||
#include "main/condrender.h"
|
||||
#include "swrast/swrast.h"
|
||||
#include "drivers/common/meta.h"
|
||||
|
||||
@ -88,6 +89,9 @@ intelClear(struct gl_context *ctx, GLbitfield mask)
|
||||
struct intel_renderbuffer *irb;
|
||||
int i;
|
||||
|
||||
if (!_mesa_check_conditional_render(ctx))
|
||||
return;
|
||||
|
||||
if (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_FRONT_RIGHT)) {
|
||||
intel->front_buffer_dirty = GL_TRUE;
|
||||
}
|
||||
|
@ -190,6 +190,7 @@ static const struct dri_extension brw_extensions[] = {
|
||||
{ "GL_ATI_envmap_bumpmap", GL_ATI_envmap_bumpmap_functions },
|
||||
{ "GL_ATI_separate_stencil", GL_ATI_separate_stencil_functions },
|
||||
{ "GL_ATI_texture_env_combine3", NULL },
|
||||
{ "GL_NV_conditional_render", NULL },
|
||||
{ "GL_NV_texture_env_combine4", NULL },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "main/enums.h"
|
||||
#include "main/image.h"
|
||||
#include "main/colormac.h"
|
||||
#include "main/condrender.h"
|
||||
#include "main/mtypes.h"
|
||||
#include "main/macros.h"
|
||||
#include "main/pbo.h"
|
||||
@ -329,6 +330,9 @@ intelBitmap(struct gl_context * ctx,
|
||||
{
|
||||
struct intel_context *intel = intel_context(ctx);
|
||||
|
||||
if (!_mesa_check_conditional_render(ctx))
|
||||
return;
|
||||
|
||||
if (do_blit_bitmap(ctx, x, y, width, height,
|
||||
unpack, pixels))
|
||||
return;
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "main/image.h"
|
||||
#include "main/state.h"
|
||||
#include "main/mtypes.h"
|
||||
#include "main/condrender.h"
|
||||
#include "drivers/common/meta.h"
|
||||
|
||||
#include "intel_context.h"
|
||||
@ -204,6 +205,9 @@ intelCopyPixels(struct gl_context * ctx,
|
||||
{
|
||||
DBG("%s\n", __FUNCTION__);
|
||||
|
||||
if (!_mesa_check_conditional_render(ctx))
|
||||
return;
|
||||
|
||||
if (do_blit_copypixels(ctx, srcx, srcy, width, height, destx, desty, type))
|
||||
return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user