diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2018-01-08 05:41:34 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2018-01-08 05:41:34 +0000 |
commit | c00801de923e125863aaf8180439d59d610b2517 (patch) | |
tree | e2896aa2785f3cf2151aeeb3c95fb5cc09a2fe02 /lib/mesa/src/gallium/auxiliary/draw/draw_llvm.h | |
parent | be30e6efb92db21299b936c0e068e7088941e9c9 (diff) |
Revert to Mesa 13.0.6 again.
Corruption has again been reported on Intel hardware running Xorg with
the modesetting driver (which uses OpenGL based acceleration instead of
SNA acceleration the intel driver defaults to).
Reported in various forms on Sandy Bridge (X220), Ivy Bridge (X230) and
Haswell (X240). Confirmed to not occur with the intel driver but the
xserver was changed to default to the modesetting driver on >= gen4
hardware (except Ironlake).
One means of triggering this is to open a large pdf with xpdf on an
idle machine and highlight a section of the document.
There have been reports of gpu hangs on gen4 intel hardware
(T500 with GM45, X61 with 965GM) when starting Xorg as well.
Diffstat (limited to 'lib/mesa/src/gallium/auxiliary/draw/draw_llvm.h')
-rw-r--r-- | lib/mesa/src/gallium/auxiliary/draw/draw_llvm.h | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/lib/mesa/src/gallium/auxiliary/draw/draw_llvm.h b/lib/mesa/src/gallium/auxiliary/draw/draw_llvm.h index a968be01f..271433c8e 100644 --- a/lib/mesa/src/gallium/auxiliary/draw/draw_llvm.h +++ b/lib/mesa/src/gallium/auxiliary/draw/draw_llvm.h @@ -172,7 +172,7 @@ enum { lp_build_struct_get(_gallivm, _ptr, 0, "stride") #define draw_jit_vbuffer_offset(_gallivm, _ptr) \ - lp_build_struct_get(_gallivm, _ptr, 2, "buffer_offset") + lp_build_struct_get(_gallivm, _ptr, 1, "buffer_offset") enum { DRAW_JIT_DVBUFFER_MAP = 0, @@ -261,18 +261,31 @@ enum { -typedef boolean +typedef int (*draw_jit_vert_func)(struct draw_jit_context *context, struct vertex_header *io, const struct draw_vertex_buffer vbuffers[PIPE_MAX_ATTRIBS], + unsigned start, unsigned count, - unsigned start_or_maxelt, unsigned stride, struct pipe_vertex_buffer *vertex_buffers, unsigned instance_id, unsigned vertex_id_offset, - unsigned start_instance, - const unsigned *fetch_elts); + unsigned start_instance); + + +typedef int +(*draw_jit_vert_func_elts)(struct draw_jit_context *context, + struct vertex_header *io, + const struct draw_vertex_buffer vbuffers[PIPE_MAX_ATTRIBS], + const unsigned *fetch_elts, + unsigned fetch_max_elt, + unsigned fetch_count, + unsigned stride, + struct pipe_vertex_buffer *vertex_buffers, + unsigned instance_id, + unsigned vertex_id_offset, + unsigned start_instance); typedef int @@ -380,7 +393,9 @@ struct draw_llvm_variant LLVMTypeRef vertex_header_ptr_type; LLVMValueRef function; + LLVMValueRef function_elts; draw_jit_vert_func jit_func; + draw_jit_vert_func_elts jit_func_elts; struct llvm_vertex_shader *shader; @@ -508,12 +523,11 @@ struct lp_build_sampler_soa * draw_llvm_sampler_soa_create(const struct draw_sampler_static_state *static_state); void -draw_llvm_set_sampler_state(struct draw_context *draw, - enum pipe_shader_type shader_stage); +draw_llvm_set_sampler_state(struct draw_context *draw, unsigned shader_stage); void draw_llvm_set_mapped_texture(struct draw_context *draw, - enum pipe_shader_type shader_stage, + unsigned shader_stage, unsigned sview_idx, uint32_t width, uint32_t height, uint32_t depth, uint32_t first_level, uint32_t last_level, |