aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* anv/pass: Avoid accessing attachment array out of boundsNanley Chery2017-03-021-9/+13
| | | | | | Cc: <[email protected]> Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* ralloc: Make sure ralloc() allocations match malloc()'s alignment.Jonas Pfeil2017-03-021-1/+12
| | | | | | | | | | | | | | | | | | | The header of ralloc needs to be aligned, because the compiler assumes that malloc returns will be aligned to 8/16 bytes depending on the platform, leading to degraded performance or alignment faults with ralloc. Fixes SIGBUS on Raspberry Pi at high optimization levels. This patch is not perfect for MSVC, as maybe in the future the alignment for the most demanding data type might change to more than 8. v2: Commit message reword/typo fix, and add a bigger explanation in the code (by anholt) Signed-off-by: Jonas Pfeil <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Cc: [email protected]
* swr: fix crash in swr_update_derived following st/mesa state changesBruce Cherniak2017-03-022-3/+46
| | | | | | | | | | | | | | | | | | | | Recent change to st/mesa state update logic caused major regressions to swr validation code. swr uses the same validation logic (swr_update_derived) for both draw and Clear calls. New st/mesa state update logic results in certain state objects not being set/bound during Clear. This was causing null ptr exceptions. Creation of static dummy state objects allows setting these pointers during Clear validation, without interfering with relevant state validation. Once fixed, new logic also highlighted an error in dirty bit checking for fragment shader and clip validation. (The alternative is to have a simplified validation routine for Clear. Which may do that at some point.) Reviewed-by: Tim Rowley <[email protected]>
* docs: update features.txt for GL_ARB_clear_texture with swrBruce Cherniak2017-03-021-1/+1
| | | | Reviewed-by: Tim Rowley <[email protected]>
* swr: enable clear_texture with util_clear_textureBruce Cherniak2017-03-022-1/+2
| | | | | | Passes corresponding piglit tests. Reviewed-by: Edward O'Callaghan <[email protected]>
* doc: GL_ARB_buffer_storage is supported on llvmpipe/swrGregory Hainaut2017-03-021-1/+1
| | | | | | | | | At least, the extension is exported (gallium capability PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT is 1) Signed-off-by: Gregory Hainaut <[email protected]> Acked-by: Edward O'Callaghan <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* automake: i965: list correct header in Makefile.sourceEmil Velikov2017-03-021-1/+1
| | | | | Fixes: 7ac47b1af767 ("i965: Add a header for brw_vec4_vs_visitor") Signed-off-by: Emil Velikov <[email protected]>
* svga: fix crash regression since e027935a795Brian Paul2017-03-022-4/+5
| | | | | | | | | | | | During the first update of the hw_clear_state atoms, we may not yet have a current rasterizer state object. So, svga->curr.rast may be NULL and we crash. Add a few null pointer checks to work around this. Note that these are only needed in the state update functions which are called for 'clear' validation. Reviewed-by: Charmaine Lee <[email protected]>
* svga: s/unsigned/pipe_prim_type/Brian Paul2017-03-024-2/+8
| | | | | | And add some default switch cases to silence compiler warnings. Reviewed-by: Charmaine Lee <[email protected]>
* svga: whitespace fixes in svga_context.hBrian Paul2017-03-021-10/+9
| | | | Trivial.
* svga: whitespace and formatting fixes in svga_stage.cBrian Paul2017-03-021-44/+40
| | | | Trivial.
* mesa: Avoid read of uninitialized variableRobert Foss2017-03-021-1/+1
| | | | | | | | | | | | | | | | The is_color_attachement variable is later read when handling two separate error cases, where only one of the cases results in the variable being initialized. This can be avoided by giving the variable a safe default value. Coverity-Id: 1398631 Cc: [email protected] Signed-off-by: Robert Foss <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]> Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* anv: add VK_KHR_descriptor_update_template supportLionel Landwerlin2017-03-025-0/+232
| | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv: add VK_KHR_push_descriptor supportLionel Landwerlin2017-03-024-0/+117
| | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv: descriptor: make descriptor writing take a stream allocatorLionel Landwerlin2017-03-022-0/+10
| | | | | | | | | This allows us to allocate surface states from the command buffer when pushing descriptor sets rather than allocating them through a descriptor set pool. Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv: descriptors: extract writing of descriptors elementsLionel Landwerlin2017-03-022-81/+162
| | | | | | | This will be reused later on. Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv: make layout size computation helper available across compilation unitsLionel Landwerlin2017-03-022-3/+6
| | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv: move buffer_view declarationLionel Landwerlin2017-03-021-13/+13
| | | | | | | We will need this declaration closer for readability later. Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* mesa: Use _mesa_has_OES_geometry_shader() when validating drawsTomasz Figa2017-03-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | In validate_DrawElements_common() we need to check for OES_geometry_shader extension to determine if we should fail if transform feedback is unpaused. However current code reads ctx->Extensions.OES_geometry_shader directly, which does not take context version into account. This means that if the context is GLES 3.0, which makes the OES_geometry_shader inapplicable, we would not validate the draw properly. To fix it, let's replace the check with a call to _mesa_has_OES_geometry_shader(). Fixes following dEQP tests on i965 with a GLES 3.0 context: dEQP-GLES3.functional.negative_api.vertex_array#draw_elements dEQP-GLES3.functional.negative_api.vertex_array#draw_elements_incomplete_primitive dEQP-GLES3.functional.negative_api.vertex_array#draw_elements_instanced dEQP-GLES3.functional.negative_api.vertex_array#draw_elements_instanced_incomplete_primitive dEQP-GLES3.functional.negative_api.vertex_array#draw_range_elements dEQP-GLES3.functional.negative_api.vertex_array#draw_range_elements_incomplete_primitive Signed-off-by: Tomasz Figa <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* i965: Replace BRW_SURFACEFORMAT_* with ISL_FORMAT_*.Kenneth Graunke2017-03-029-602/+355
| | | | | | | | | | | | One less set of enums. Dropped the #defines from brw_defines.h and ran: $ for file in *.cpp *.c *.h; do sed -i \ -e 's/BRW_SURFACEFORMAT_/ISL_FORMAT_/g' \ -e 's/ISL_FORMAT_ASTC_[A-Zxs0-9_]*/\U&/g' $file; \ done Signed-off-by: Kenneth Graunke <[email protected]> Acked-by: Jason Ekstrand <[email protected]>
* i965: Only flush the batchbuffer if we need to zero the SO offsetsChris Wilson2017-03-021-4/+14
| | | | | | | | | | | | | If we don't have pipelined register access (e.g. Haswell before kernel v4.2), then we can only implement EXT_transform_feedback by reseting the SO offsets *between* batches. However, if we do have pipelined access to the SO registers on gen7, we can simply emit an inline reset of the SO registers without a full batch flush. v2 [by Ken]: Simplify after recent kernel feature detection changes. Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]>
* anv: do not subtract the base layer to compute depth in 3DSTATE_DEPTH_BUFFERIago Toral Quiroga2017-03-021-2/+1
| | | | | | | | | | | | | | | | | | | | According to the PRM description of the Depth field: "This field specifies the total number of levels for a volume texture or the number of array elements allowed to be accessed starting at the Minimum Array Element for arrayed surfaces" However, ISL defines array_len as the length of the range [base_array_layer, base_array_layer + array_len], so it already represents a value relative to the base array layer like the hardware expects. v2: Depth is defined as a U11-1 field, so subtract 1 from the actual value (Jason) This fixes a number of new CTS tests that would crash otherwise: dEQP-VK.pipeline.render_to_image.* Reviewed-by: Jason Ekstrand <[email protected]>
* isl: document the meaning of the array_len field in isl_viewIago Toral Quiroga2017-03-021-0/+6
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* vulkan/wsi: Improve the DRI3 error messageJacob Lifshay2017-03-011-10/+41
| | | | | | | | | | | | | | | | | This commit improves the message by telling them that they could probably enable DRI3. More importantly, it includes a little heuristic to check to see if we're running on AMD or NVIDIA's proprietary X11 drivers and, if we are, doesn't emit the warning. This way, users with both a discrete card and Intel graphics don't get the warning when they're just running on the discrete card. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99715 Co-authored-by: Jason Ekstrand <[email protected]> Reviewed-by: Kai Wasserbäch <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Tested-by: Rene Lindsay <[email protected]> Acked-by: Dave Airlie <[email protected]> Cc: "17.0" <[email protected]>
* i965: Do int64 lowering in NIRJason Ekstrand2017-03-013-59/+57
| | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* nir: Add a simple int64 lowering passJason Ekstrand2017-03-013-0/+289
| | | | | | | | | | | | | | | | | | The algorithms used by this pass, especially for division, are heavily based on the work Ian Romanick did for the similar int64 lowering pass in the GLSL compiler. v2: Properly handle vectors v3: Get rid of log2_denom stuff. Since we're using bcsel, we do all the calculations anyway and this is just extra instructions. v4: - Add back in the log2_denom stuff since it's needed for ensuring that the shifts don't overflow. - Rework the looping part of the pass to be easier to expand. Reviewed-by: Matt Turner <[email protected]>
* spirv: Use nir_builder for control flowJason Ekstrand2017-03-011-31/+14
| | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* nir/lower_indirect: Use nir_builder control-flow helpersJason Ekstrand2017-03-011-30/+5
| | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* nir/lower_gs_intrinsics: Use nir_builder control-flow helpersJason Ekstrand2017-03-011-6/+3
| | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* glsl/nir: Use nir_builder's new control-flow helpersJason Ekstrand2017-03-011-27/+11
| | | | Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* nir/builder: Add support for easily building control-flowJason Ekstrand2017-03-011-0/+95
| | | | | | | | | | | Each of the pop functions (and push_else) take a control flow parameter as their second argument. If NULL, it assumes that the builder is in a block that's a direct child of the control-flow node you want to pop off the virtual stack. This is what 90% of consumers will want. The SPIR-V pass, however, is a bit more "creative" about how it walks the CFG and it needs to be able to pop multiple levels at a time, hence the argument. Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
* i965: Move intel_debug.h to intel/common/gen_debug.hJason Ekstrand2017-03-0121-23/+26
| | | | | | | | | | This is shared between the Vulkan and GL drivers as it's a requirement of the back-end compiler. However, it doesn't really belong in the compiler. We rename the file to match the prefix of the other stuff in common and because libdrm defines an intel_debug.h and this avoids a pile of possible name conflicts. Reviewed-by: Anuj Phogat <[email protected]>
* i965: Reduce cross-pollination between the DRI driver and compilerJason Ekstrand2017-03-0157-52/+34
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move select_clip_planes to brw_vs.cJason Ekstrand2017-03-012-25/+26
| | | | Reviewed-by: Matt Turner <[email protected]>
* i965: Delete brw_do_cubemap_normalizeJason Ekstrand2017-03-013-124/+0
| | | | | | | This hasn't been used for quite some time now but we never bothered to get rid of it when we dropped GLSL IR support for vec4. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Add a header for brw_vec4_vs_visitorJason Ekstrand2017-03-015-44/+71
| | | | | | | brw_vs.h is not a compiler file but brw_vec4_visitor is definitely a compiler thing. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move a bunch of pre-compile and link stuff to brw_program.hJason Ekstrand2017-03-012-14/+15
| | | | | | It's all GL-specific and brw_program.h is not part of i965_compiler. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move image uniform setup to brw_nir_uniforms.cppJason Ekstrand2017-03-012-51/+51
| | | | | | It's the only thing that's using it. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move channel_expressions and vector_splitting to brw_program.hJason Ekstrand2017-03-014-3/+5
| | | | | | They're GL-specific. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Make mark_surface_used a static inline in brw_compiler.hJason Ekstrand2017-03-012-13/+13
| | | | | | | One of these days, I'd like to see this function go away all together but for now, let's at least put it near the struct it updates. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move BRW_ATTRIB_WA_* defines to brw_compiler.hJason Ekstrand2017-03-013-13/+13
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move BRW_MAX_DRAW_BUFFERS to brw_compiler.hJason Ekstrand2017-03-012-3/+3
| | | | | | | | | It does sort-of go with MAX_UBO and friends but MAX_DRAW_BUFFERS is an actual hardware constant based on the number of things we can blend rather than an arbitrary "number of things allowed in GL" like some of the other maximums are. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/inst: Stop using fi_typeJason Ekstrand2017-03-011-2/+8
| | | | | | | It's a mesa define that's trivial to inline. This removes a dependence on main/imports.h. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move brw_register_blocks to brw_fs.cppJason Ekstrand2017-03-012-11/+11
| | | | | | Its one and only caller is brw_compile_fs which lives there. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move SHADER_TIME_STRIDE to brw_compiler.hJason Ekstrand2017-03-015-15/+15
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Move SOL binding #defines to brw_compiler.hJason Ekstrand2017-03-015-30/+33
| | | | | | | | While we're at it, we also change the GEN6 binding macro to be a start index that gets added to the binding. This makes things a bit more explicit. Reviewed-by: Kenneth Graunke <[email protected]>
* i964/gs: Move MAX_GS_INPUT_VERTICES to brw_vec4_gs_visitor.hJason Ekstrand2017-03-012-2/+2
| | | | | | It's only users are in brw_vec4_gs_visitor and gen6_vec4_gs_visitor. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/gs: Add the gl_prim_to_hw_prim table to vec4_gs_visitor.cppJason Ekstrand2017-03-011-1/+19
| | | | | | | | | It's currently in brw_util.c but that's the only bit of brw_util.c that's shared between the compiler and the rest of the GL driver. It's just a fairly obvious table so the duplication isn't bad. It's certainly less pain than trying to figure out how to share the code. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Don't use MAX_SURFACES in mark_surface_usedJason Ekstrand2017-03-011-1/+4
| | | | | | | Vulkan doesn't respect MAX_SURFACES so this assert isn't valid in that case. It should, however, assert that it isn't insanely large. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Get rid of BRW_PRIM_OFFSETJason Ekstrand2017-03-012-14/+2
| | | | | | | This is a relic of when we wired up meta to be able to use RECTLIST primitives. It's no longer needed. Reviewed-by: Kenneth Graunke <[email protected]>