mesa.git
9 years agoi965/gen9: Plugin the code for selecting YF/YS tiling on skl+
Anuj Phogat [Wed, 15 Apr 2015 05:06:49 +0000 (22:06 -0700)]
i965/gen9: Plugin the code for selecting YF/YS tiling on skl+

Buffers with Yf/Ys tiling end up using meta upload / download
paths or the blitter for cases where they used tiled_memcpy paths
in case of Y tiling. This has exposed some bugs in meta path. To
avoid any piglit regressions on SKL this patch keeps the Yf/Ys
tiling disabled at the moment.

V3: Make brw_miptree_choose_tr_mode() actually choose TRMODE. (Ben)
    Few cosmetic changes.
V4: Get rid of brw_miptree_choose_tr_mode().
    Take care of all tile resource modes {Yf, Ys, none} for all
    generations at one place.

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
9 years agoi965: Make a helper function intel_miptree_set_alignment()
Anuj Phogat [Thu, 4 Jun 2015 23:57:02 +0000 (16:57 -0700)]
i965: Make a helper function intel_miptree_set_alignment()

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
9 years agomesa/main: free locale at exit
Erik Faye-Lund [Sun, 28 Jun 2015 12:51:09 +0000 (14:51 +0200)]
mesa/main: free locale at exit

In order to save a small leak if mesa is continously loaded and
unloaded, let's free the locale when the shared object is unloaded.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoutil: port _mesa_strto[df] to C
Erik Faye-Lund [Sun, 28 Jun 2015 12:51:08 +0000 (14:51 +0200)]
util: port _mesa_strto[df] to C

_mesa_strtod and _mesa_strtof are only used from the GLSL compiler and
the ARB_[vertex|fragment]_program code, meaning that the locale doesn't
need to be initialized before the first OpenGL context gets initialized.

So let's use explicit initialization from the one-time init code instead
of depending on a C++ compiler to initialize at image-load time.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoglsl: No need to lock in _mesa_glsl_release_types
Erik Faye-Lund [Sun, 28 Jun 2015 12:51:07 +0000 (14:51 +0200)]
glsl: No need to lock in _mesa_glsl_release_types

This function only gets called while mesa is unloading, so there's
no potential of racing or multiple calls at the same time. So let's
just get rid of the locking.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agomesa/main: only call _mesa_destroy_shader_compiler once on exit
Erik Faye-Lund [Sun, 28 Jun 2015 12:51:06 +0000 (14:51 +0200)]
mesa/main: only call _mesa_destroy_shader_compiler once on exit

There's no point in calling _mesa_destroy_shader_compiler multiple
times on exit; the resources will only be released once anyway.

So let's move the atexit-call into the part that is only called
once.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agodri: don't touch the shader compiler
Erik Faye-Lund [Sun, 28 Jun 2015 12:51:05 +0000 (14:51 +0200)]
dri: don't touch the shader compiler

This function is for deleting per-screen resources, and the shader
compiler resources are not of such nature. Besides, dri shouldn't
need to even know about the presence of a shader compiler.

These resources will already be released when mesa gets unloaded,
and that should be sufficient.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agomesa/main: Get rid of outdated GDB-hack
Erik Faye-Lund [Sun, 28 Jun 2015 12:51:04 +0000 (14:51 +0200)]
mesa/main: Get rid of outdated GDB-hack

All of these enums are now in use around in the code, so there's no need
to explicitly use them here any more.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoclover: implement CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE
Grigori Goronzy [Thu, 28 May 2015 11:01:51 +0000 (13:01 +0200)]
clover: implement CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE

Work-group size should always be aligned to subgroup size; this is a
basic requirement, otherwise some work-items will be no-operation.

It might make sense to refine the value according to a kernel's
resource usage, but that's a possible optimization for the future.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agogallium: add PIPE_COMPUTE_CAP_SUBGROUP_SIZE
Grigori Goronzy [Thu, 28 May 2015 10:40:29 +0000 (12:40 +0200)]
gallium: add PIPE_COMPUTE_CAP_SUBGROUP_SIZE

We need this to implement OpenCL's
CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agoi965: Don't try to print the GLSL IR if it has been freed
Neil Roberts [Fri, 26 Jun 2015 16:54:15 +0000 (17:54 +0100)]
i965: Don't try to print the GLSL IR if it has been freed

Since commit 104c8fc2c2aa5621261f8 the GLSL IR will be freed if NIR is
being used. This was causing it to segfault if INTEL_DEBUG=wm is set.
This patch just makes it avoid dumping the GLSL IR in that case.

Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
9 years agodocs: add news item and link release notes for mesa 10.6.1
Emil Velikov [Mon, 29 Jun 2015 08:03:19 +0000 (09:03 +0100)]
docs: add news item and link release notes for mesa 10.6.1

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodocs: Add sha256 checksums for the 10.6.1 release
Emil Velikov [Mon, 29 Jun 2015 08:00:24 +0000 (09:00 +0100)]
docs: Add sha256 checksums for the 10.6.1 release

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
(cherry picked from commit 6ff3ae8deb1d99037f2f8e5890b09bd984059cf0)

9 years agoAdd release notes for the 10.6.1 release
Emil Velikov [Mon, 29 Jun 2015 07:23:14 +0000 (08:23 +0100)]
Add release notes for the 10.6.1 release

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
(cherry picked from commit a871e80fc6237fa029d6970f7e9b414fd097bd98)

9 years agoRevert "glsl: clone inputs and outputs during linking"
Kenneth Graunke [Mon, 29 Jun 2015 05:17:16 +0000 (22:17 -0700)]
Revert "glsl: clone inputs and outputs during linking"

This reverts commit c2ff3485b3d48749ea9dcad07bc1a691627dc3e5.

Ilia and I noticed a memory leak caused by this patch: at least with
fixed-function programs, we clone things using ProgramResourceList as
the context before reralloc makes it non-NULL.

I believe Tapani found other bugs with these patches, so I'm just going
to revert them for now and let him pursue them further.

9 years agoRevert "i965: Delete linked GLSL IR when using NIR."
Kenneth Graunke [Mon, 29 Jun 2015 05:17:09 +0000 (22:17 -0700)]
Revert "i965: Delete linked GLSL IR when using NIR."

This reverts commit 104c8fc2c2aa5621261f80aa6b4f76c3163078f1.

9 years agonv30: avoid leaking blit fp/vp
Ilia Mirkin [Mon, 29 Jun 2015 04:23:55 +0000 (00:23 -0400)]
nv30: avoid leaking blit fp/vp

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agonv40: enable base vertex
Ilia Mirkin [Mon, 29 Jun 2015 02:30:27 +0000 (22:30 -0400)]
nv40: enable base vertex

Still appears to have issues with negative indices less than -1M, but
that's a corner case of a corner case.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agoi965/vs: Move compute_clip_distance() out of emit_urb_writes().
Kenneth Graunke [Fri, 26 Jun 2015 22:05:13 +0000 (15:05 -0700)]
i965/vs: Move compute_clip_distance() out of emit_urb_writes().

Legacy user clipping (using gl_Position or gl_ClipVertex) is handled by
turning those into the modern gl_ClipDistance equivalents.

This is unnecessary in Core Profile: if user clipping is enabled, but
the shader doesn't write the corresponding gl_ClipDistance entry,
results are undefined.  Hence, it is also unnecessary for geometry
shaders.

This patch moves the call up to run_vs().  This is equivalent for VS,
but removes the need to pass clip distances into emit_urb_writes().

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965: Write at least some data in SIMD8 URB write messages.
Kenneth Graunke [Sat, 30 May 2015 05:40:07 +0000 (22:40 -0700)]
i965: Write at least some data in SIMD8 URB write messages.

According to the "URB SIMD8 Write > Write Data Payload" documentation,
"The write data payload can be between 1 and 8 message phases long."

Apparently, the simulator considers it an error if you issue an URB
SIMD8 message with only a header and no actual data to write.

v2: Try to put in a better PRM citation, now that the Broadwell docs
    actually exist (requested by Jordan).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agogallium/hud: prevent NULL pointer dereference with pipe_query functions
Samuel Pitoiset [Wed, 24 Jun 2015 19:11:27 +0000 (21:11 +0200)]
gallium/hud: prevent NULL pointer dereference with pipe_query functions

The HUD doesn't check if query_create() fails and it calls other
pipe_query functions with NULL pointer instead of a valid query object.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agonouveau: Use dup fd as key in drm-winsys hash table to fix ZaphodHeads.
Mario Kleiner [Fri, 5 Jun 2015 13:36:52 +0000 (15:36 +0200)]
nouveau: Use dup fd as key in drm-winsys hash table to fix ZaphodHeads.

The dup'ed fd owned by the nouveau_screen for a device node
must also be used as key for the winsys hash table, instead
of using the original fd passed in for a screen, to make
multi-x-screen ZaphodHeads configurations work on nouveau.

The original fd's lifetime differs from that of the nouveau_screen stored
in the hash. The hash key is the fd, and in order to compare hash entries
we fstat them, so the fd must be around for as long as the screen is.

This is an extension of the fix in commit a59f2bb1 (nouveau: dup fd
before passing it to device).

Cc: "10.3 10.4 10.5 10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agometa: Only change and restore viewport 0 in mesa meta mode
Mike Stroyan [Fri, 26 Jun 2015 21:15:46 +0000 (15:15 -0600)]
meta: Only change and restore viewport 0 in mesa meta mode

The meta code was setting a default depth range for all viewports
and 'restoring' all viewports to depth range values saved from viewport 0.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoradeonsi: add support for geometry shader invocations.
Dave Airlie [Thu, 25 Jun 2015 02:55:54 +0000 (03:55 +0100)]
radeonsi: add support for geometry shader invocations.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agoradeonsi: add support for viewport array (v3)
Dave Airlie [Thu, 25 Jun 2015 02:36:23 +0000 (03:36 +0100)]
radeonsi: add support for viewport array (v3)

This isn't pretty and I'd suggest it the pm4 interface builder
could be tweaked to do this more efficently, but I'd need
guidance on how that would look.

This seems to pass the few piglit tests I threw at it.

v2: handle passing layer/viewport index to fragment shader.
fix crash in blit changes,
add support to io_get_unique_index for layer/viewport index
update docs.
v3: avoid looking up viewport index and layer in es (Marek).

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
9 years agoi965/fs: Fix ir_txs in emit_texture_gen4_simd16().
Kenneth Graunke [Thu, 18 Jun 2015 20:55:52 +0000 (13:55 -0700)]
i965/fs: Fix ir_txs in emit_texture_gen4_simd16().

We were not emitting the LOD, which led to message lengths of 1 instead
of 3.  Setting has_lod makes us emit the LOD, but I had to make changes
to avoid emitting the non-existent coordinate as well.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91022
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agonv50/ir: propagate modifier to right arg when const-folding mad
Ilia Mirkin [Fri, 26 Jun 2015 19:01:22 +0000 (15:01 -0400)]
nv50/ir: propagate modifier to right arg when const-folding mad

An immediate has to be the second arg of an ADD operation. However we
were mistakenly propagating the modifier of the non-folded value to the
folded immediate argument.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91117
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agoegl_dri2: Remove trailing whitespaces
Boyan Ding [Sat, 13 Jun 2015 07:36:27 +0000 (15:36 +0800)]
egl_dri2: Remove trailing whitespaces

Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agoi965/skl: Fix aligning mt->total_width to the block size
Neil Roberts [Tue, 16 Jun 2015 12:53:40 +0000 (13:53 +0100)]
i965/skl: Fix aligning mt->total_width to the block size

brw_miptree_layout_2d tries to ensure that mt->total_width is a
multiple of the compressed block size, presumably because it wouldn't
be possible to make an image that has a fraction of a block. However
it was doing this by aligning mt->total_width to align_w. Previously
align_w has been used as a shortcut for getting the block width
because before Gen9 the block width was always equal to the alignment.
Commit 4ab8d59a2 tried to fix these cases to use the block width
instead of the alignment but it missed this case.

I think in practice this probably won't make any difference because
the buffer for the texture will be allocated to be large enough to
contain the entire pitch and libdrm aligns the pitch to the tile width
anyway. However I think the patch is worth having to make the
intention clearer.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
9 years agomesa: Enable subdir-objects globally.
Matt Turner [Wed, 10 Jun 2015 23:30:56 +0000 (16:30 -0700)]
mesa: Enable subdir-objects globally.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomesa: fold duplicated GL/GL_CORE/GLES3 entry in get_hash_params.py
Emil Velikov [Wed, 24 Jun 2015 13:06:33 +0000 (14:06 +0100)]
mesa: fold duplicated GL/GL_CORE/GLES3 entry in get_hash_params.py

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoilo: define ILO_IMAGE_MAX_LEVEL_COUNT
Chia-I Wu [Fri, 26 Jun 2015 03:38:46 +0000 (11:38 +0800)]
ilo: define ILO_IMAGE_MAX_LEVEL_COUNT

Define ILO_IMAGE_MAX_LEVEL_COUNT for ilo_image and remove unnecessary header
includes.

9 years agoilo: replace pipe_format by gen_surface_format
Chia-I Wu [Thu, 25 Jun 2015 14:27:04 +0000 (22:27 +0800)]
ilo: replace pipe_format by gen_surface_format

Replace pipe_format by gen_surface_format in ilo_image.  Change how depth
format is specified in ilo_state_zs.

9 years agoilo: always use the specified image format
Chia-I Wu [Wed, 24 Jun 2015 23:43:47 +0000 (07:43 +0800)]
ilo: always use the specified image format

Move silent promotion of PIPE_FORMAT_ETC1_RGB8 or combined depth/stencil out
of core.

9 years agoilo: replace pipe_texture_target by gen_surface_type
Chia-I Wu [Wed, 24 Jun 2015 14:47:30 +0000 (22:47 +0800)]
ilo: replace pipe_texture_target by gen_surface_type

Replace pipe_texture_target by gen_surface_type in ilo_image.  Change how
GEN6_SURFTYPE_CUBE is specified in ilo_state_surface and ilo_state_zs.

9 years agoilo: initialize ilo_image from ilo_image_info
Chia-I Wu [Wed, 24 Jun 2015 14:46:36 +0000 (22:46 +0800)]
ilo: initialize ilo_image from ilo_image_info

Convert pipe_resource to ilo_image_info for image initialization.

9 years agoilo: remove ilo_image_disable_aux()
Chia-I Wu [Wed, 24 Jun 2015 23:18:31 +0000 (07:18 +0800)]
ilo: remove ilo_image_disable_aux()

Fail resource creation when aux bo allocation fails.

9 years agoilo: improve SURFTYPE_BUFFER validations
Chia-I Wu [Wed, 24 Jun 2015 04:57:57 +0000 (12:57 +0800)]
ilo: improve SURFTYPE_BUFFER validations

Reorganize the validations to make them more systematic.

9 years agoilo: remove ilo_buffer
Chia-I Wu [Fri, 26 Jun 2015 05:08:32 +0000 (13:08 +0800)]
ilo: remove ilo_buffer

Since the addition of ilo_vma, it was used only to pad a bo for sampling
engine surfaces.  Replace it entirely with these functions

  ilo_state_surface_buffer_size()
  ilo_state_vertex_buffer_size()
  ilo_state_index_buffer_size()
  ilo_state_sol_buffer_size()

9 years agoilo: introduce ilo_vma
Chia-I Wu [Wed, 24 Jun 2015 05:59:31 +0000 (23:59 -0600)]
ilo: introduce ilo_vma

This cleans up the code a bit and makes ilo_state_vector_resource_renamed()
simpler and more robust.  It also allows a single bo to back mulitple VMAs.

9 years agomesa: remove unnecessary checks in _mesa_readpixels_needs_slow_path
Iago Toral Quiroga [Tue, 23 Jun 2015 06:42:14 +0000 (08:42 +0200)]
mesa: remove unnecessary checks in _mesa_readpixels_needs_slow_path

readpixels_can_use_memcpy will later call _mesa_format_matches_format_and_type
which does much tighter checks than these to decide if we can use
memcpy for readpixels.

Also, the checks do not seem to be extensive enough anyway, since we are
checking for signed/unsigned conversion only when the framebuffer has integers,
but the same checks could be done for other types anyway, since as long as
there is a signed/unsigned conversion we can't memcpy.

No regressions observed on i965/llvmpipe.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agoi965/vec4_live_variables: Do liveness analysis bottom-to-top
Jason Ekstrand [Thu, 25 Jun 2015 15:08:27 +0000 (08:08 -0700)]
i965/vec4_live_variables: Do liveness analysis bottom-to-top

From Muchnick's Advanced Compiler Design and Implementation:

"To determine which variables are live at each point in a flowgraph, we
perform a backward data-flow analysis"

Previously, we were walking the blocks forwards and updating the livein and
then the liveout.  However, the livein calculation depends on the liveout
and the liveout depends on the successor blocks.  The net result is that it
takes one full iteration to go from liveout to livein and then another
full iteration to propagate to the predecessors.  This works out to an
O(n^2) computation where n is the number of blocks.  If we run things in
the other order, it's O(nl) where l is the maximum loop depth which is
practically bounded by 3.

In b2c6ba0c4b21391dc35018e1c8c4f7f7d8952bea, we made this same change in
the FS backend to great effect.  Might as well keep it consistent and make
the same change for vec4.  Also, this took the time to run the test:

ES31-CTS.arrays_of_arrays.InteractionFunctionCalls1

from 6:49.62 to 3:31.40 on Timothy Arceri's machine.

Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoi965/skl: Use more compact hiz dimensions
Ben Widawsky [Thu, 25 Jun 2015 03:07:54 +0000 (20:07 -0700)]
i965/skl: Use more compact hiz dimensions

gen8 had some special restrictions which don't seem to carry over to gen9.
Quoting the spec for SKL:
"The Z_Height and Z_Width values must equal those present in
3DSTATE_DEPTH_BUFFER incremented by one."

This fixes nothing in piglit (and regresses nothing).

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoradeonsi: don't fail in si_shader_io_get_unique_index
Marek Olšák [Thu, 25 Jun 2015 12:58:37 +0000 (14:58 +0200)]
radeonsi: don't fail in si_shader_io_get_unique_index

Trivial. Picked from my tessellation branch.

9 years agoi965: Drop brw->depthstencil.stencil_offset from gen8_depth_state.c.
Kenneth Graunke [Wed, 24 Jun 2015 07:04:11 +0000 (00:04 -0700)]
i965: Drop brw->depthstencil.stencil_offset from gen8_depth_state.c.

This is always 0 - only brw_workaround_depthstencil_alignment ever sets
it, and that doesn't run on Gen6+.  My initial Broadwell depth state
commit had this mistake.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
9 years agonir: Recognize max(min(a, 1.0), 0.0) as fsat(a).
Kenneth Graunke [Thu, 11 Jun 2015 08:59:44 +0000 (01:59 -0700)]
nir: Recognize max(min(a, 1.0), 0.0) as fsat(a).

We already recognize min(max(a, 0.0), 1.0) as a saturate, but neglected
this variant (which is also handled by the GLSL IR pass).

shader-db results on Broadwell:
total instructions in shared programs: 7363046 -> 7362788 (-0.00%)
instructions in affected programs:     11928 -> 11670 (-2.16%)
helped:                                64
HURT:                                  0

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
9 years agosoftpipe,llvmpipe: fix PIPE_SHADER_CAP_MAX_INPUTS value
Marek Olšák [Wed, 24 Jun 2015 22:56:32 +0000 (00:56 +0200)]
softpipe,llvmpipe: fix PIPE_SHADER_CAP_MAX_INPUTS value

PIPE_MAX_SHADER_INPUTS was recently bumped to 80 because of tessellation.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91099
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91101

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
9 years agoi965/bxt: Add basic Broxton infrastructure
Ben Widawsky [Wed, 17 Jun 2015 22:50:11 +0000 (15:50 -0700)]
i965/bxt: Add basic Broxton infrastructure

The thread counts and URB information are all speculative numbers that were
based on some CHV numbers at the time.

v2:
Originally this patch had PCI IDs. I've moved that to a new patch at the end of
the series.
Remove is_cherryview hack.
Add PCI ids. These match the ones defined in the kernel. The only one tested by
us is 0x0a84.
Capitalize the hex string (Mark)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Tested-by: "Lecluse, Philippe" <Philippe.Lecluse@intel.com>
Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoradeon: Advertise correct GL_QUERY_COUNTER_BITS/GL_SAMPLES_PASSED value
Ian Romanick [Mon, 22 Jun 2015 18:09:27 +0000 (11:09 -0700)]
radeon: Advertise correct GL_QUERY_COUNTER_BITS/GL_SAMPLES_PASSED value

Commit b765119c changed the default value of all the counter bits to
64.  However, older hardware only has 32 counter bits.

This has only been build-tested.  We don't have any tests that verify
the advertised value against implementation behavior, so I don't know
what additional testing could be done.

NOTE: It appears that many Gallium drivers (at least r300 and i915g)
have the same problem, but I don't see a way for the state-tracker to
determine the counter size.  Marek says, "For Gallium, a new PIPE_CAP or
new get_xxx_param function will be needed."

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
9 years agoi965/fs_live_variables: Do liveness analysis bottom-to-top
Jason Ekstrand [Mon, 8 Jun 2015 23:03:19 +0000 (16:03 -0700)]
i965/fs_live_variables: Do liveness analysis bottom-to-top

From Muchnick's Advanced Compiler Design and Implementation:

"To determine which variables are live at each point in a flowgraph, we
perform a backward data-flow analysis"

Previously, we were walking the blocks forwards and updating the livein and
then the liveout.  However, the livein calculation depends on the liveout
and the liveout depends on the successor blocks.  The net result is that it
takes one full iteration to go from liveout to livein and then another
full iteration to propagate to the predecessors.  This works out to an
O(n^2) computation where n is the number of blocks.  If we run things in
the other order, it's O(nl) where l is the maximum loop depth which is
practically bounded by 3.

On my HSW desktop, one particular shadertoy test gets a 20% improvement in
compile times:

N           Min           Max        Median           Avg        Stddev
x  10        15.965        16.884        16.026       16.1822    0.34736846
+  10        12.813        13.052        12.876       12.8891    0.06913666
Difference at 95.0% confidence
        -3.2931 +/- 0.235316
        -20.3501% +/- 1.45417%
        (Student's t, pooled s = 0.250444)

Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoi965: Delete linked GLSL IR when using NIR.
Tapani Pälli [Thu, 11 Jun 2015 07:41:53 +0000 (10:41 +0300)]
i965: Delete linked GLSL IR when using NIR.

This is based on Kenneth's patch to delete 'most of the IR'. Due to
linker changes to clone variables, we can now free all of IR.

Saves 58MB of memory when replaying a Dota 2 trace on Broadwell.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
9 years agoglsl: clone inputs and outputs during linking
Tapani Pälli [Thu, 11 Jun 2015 07:41:52 +0000 (10:41 +0300)]
glsl: clone inputs and outputs during linking

This increases memory pressure during linking but makes it easier
for backend to free IR after it is not needed anymore.

v2: use resource list as ralloc context in case of relink (Kenneth)

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
9 years agoi965: Rename intel_emit* to reflect their new location in brw_pipe_control
Chris Wilson [Thu, 30 Apr 2015 16:04:51 +0000 (17:04 +0100)]
i965: Rename intel_emit* to reflect their new location in brw_pipe_control

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965: Transplant PIPE_CONTROL routines to brw_pipe_control
Chris Wilson [Thu, 30 Apr 2015 15:53:12 +0000 (16:53 +0100)]
i965: Transplant PIPE_CONTROL routines to brw_pipe_control

Start trimming the fat from intel_batchbuffer.c. First by moving the set
of routines for emitting PIPE_CONTROLS (along with the lore concerning
hardware workarounds) to a separate brw_pipe_control.c

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agonir: Use a switch statement for detecting move-like operations.
Kenneth Graunke [Wed, 24 Jun 2015 06:17:53 +0000 (23:17 -0700)]
nir: Use a switch statement for detecting move-like operations.

Suggested by Jason Ekstrand.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
9 years agosvga: silence warnings about unexpected shader type
Brian Paul [Wed, 24 Jun 2015 16:41:52 +0000 (10:41 -0600)]
svga: silence warnings about unexpected shader type

Trivial.

9 years agost/mesa: remove unneeded pipe_surface_release() in st_render_texture()
Brian Paul [Mon, 22 Jun 2015 20:04:09 +0000 (14:04 -0600)]
st/mesa: remove unneeded pipe_surface_release() in st_render_texture()

This caused us to always free the pipe_surface for the renderbuffer.
The subsequent call to st_update_renderbuffer_surface() would typically
just recreate it.  Remove the call to pipe_surface_release() and let
st_update_renderbuffer_surface() take care of freeing the old surface
if it needs to be replaced (because of change to mipmap level, etc).

This can save quite a few calls to pipe_context::create_surface() and
surface_destroy().

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agost/wgl: add stw_nopfuncs.h to the sources lists
Emil Velikov [Wed, 24 Jun 2015 11:59:55 +0000 (12:59 +0100)]
st/wgl: add stw_nopfuncs.h to the sources lists

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoloader: move loader_open_device out of HAVE_LIBUDEV block
Julien Isorce [Tue, 23 Jun 2015 21:47:05 +0000 (22:47 +0100)]
loader: move loader_open_device out of HAVE_LIBUDEV block

Fixes the following build issue, when building without libudev.

CCLD   libGL.la
./.libs/libglx.a(dri2_glx.o): In function `dri2CreateScreen':
src/glx/dri2_glx.c:1186: undefined reference to `loader_open_device'
collect2: ld returned 1 exit status

CCLD     libEGL.la
Undefined symbols for architecture x86_64:
"_loader_open_device", referenced from:
  _dri2_initialize_x11_dri2 in libegl_dri2.a(platform_x11.o)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91077
Signed-off-by: Julien Isorce <j.isorce@samsung.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agowinsys/radeon: reduce BO cache timeout
Grigori Goronzy [Wed, 24 Jun 2015 01:40:38 +0000 (03:40 +0200)]
winsys/radeon: reduce BO cache timeout

1000 ms is an extreme value for typical interactive loads. A large
cache has some disadvantages. Search for reusable BOs can take a long
time and memory might get exhausted.

Let's be rather conservative and use half of the old value,
500ms. This is beneficial to some loads on my test system and there
are no regressions.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agowinsys/radeon: align BO size to page size
Grigori Goronzy [Wed, 24 Jun 2015 01:38:02 +0000 (03:38 +0200)]
winsys/radeon: align BO size to page size

This is the basic granularity for BO allocations. The alignment also
helps with BO reuse by the cached bufmgr.

This results in a huge 45% speedup in Metro 2033 Redux on my test
system. The game relies on buffer orphaning with very small buffers
(hundreds of bytes in size) and that did not work efficiently
before. This change may also affect other applications and games.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agoglsl: remove cross validation of interpolation qualifier with GLSL 4.40
Tapani Pälli [Tue, 9 Jun 2015 08:06:56 +0000 (11:06 +0300)]
glsl: remove cross validation of interpolation qualifier with GLSL 4.40

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au>
9 years agoi965: Fix whitespace error in gen8_depth_state.c
Kenneth Graunke [Wed, 24 Jun 2015 06:15:22 +0000 (23:15 -0700)]
i965: Fix whitespace error in gen8_depth_state.c

Trivial.

9 years agoi965: Don't count NIR instructions for shader-db.
Kenneth Graunke [Mon, 22 Jun 2015 21:20:20 +0000 (14:20 -0700)]
i965: Don't count NIR instructions for shader-db.

Matt, Jason, and I haven't found this useful in a long time.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agowinsys/radeon: Unmap GPU VM address range when destroying BO
Michel Dänzer [Thu, 21 May 2015 01:49:05 +0000 (10:49 +0900)]
winsys/radeon: Unmap GPU VM address range when destroying BO

But only when doing so is safe according to the
RADEON_INFO_VA_UNMAP_WORKING kernel query.

This avoids kernel GPU VM address range conflicts when the BO has other
references than the GEM handle being closed, e.g. when the BO is shared.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90537
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90873

Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Christian König <christian.koenig@amd.com>
9 years agovc4: Also dump VC4_PACKET_LOAD_TILE_BUFFER_GENERAL.
Eric Anholt [Tue, 23 Jun 2015 00:38:14 +0000 (17:38 -0700)]
vc4: Also dump VC4_PACKET_LOAD_TILE_BUFFER_GENERAL.

9 years agovc4: Add dumping for VC4_PACKET_LOAD/STORE_FULL_RES_TILE_BUFFER.
Eric Anholt [Tue, 23 Jun 2015 00:34:24 +0000 (17:34 -0700)]
vc4: Add dumping for VC4_PACKET_LOAD/STORE_FULL_RES_TILE_BUFFER.

9 years agovc4: Don't try to CSE color reads.
Eric Anholt [Wed, 24 Jun 2015 01:08:49 +0000 (18:08 -0700)]
vc4: Don't try to CSE color reads.

It returns a new value for each sample in the TLB.  We've already avoided
trying to get the same index's color multiple times at the vc4_program.c
level, so we're not losing anything by doing this.

9 years agovc4: Make a helper for TLB color writes, too.
Eric Anholt [Wed, 24 Jun 2015 01:04:00 +0000 (18:04 -0700)]
vc4: Make a helper for TLB color writes, too.

We've done so for all the other QIR instruction generation in this file.

9 years agovc4: Pull the blending operation out to a separate function.
Eric Anholt [Wed, 24 Jun 2015 00:53:07 +0000 (17:53 -0700)]
vc4: Pull the blending operation out to a separate function.

It's fairly separate from the rest of the TLB operations at frag end time,
and we'll need to run it multiple times to support MSAA blending.

9 years agovc4: Clarify size calculation for Z/S writes.
Eric Anholt [Mon, 22 Jun 2015 18:45:27 +0000 (11:45 -0700)]
vc4: Clarify size calculation for Z/S writes.

It's the same value for loads and stores, because they're basically the
same packet.

9 years agovc4: Add an "args" temporary for RCL setup.
Eric Anholt [Mon, 22 Jun 2015 20:14:57 +0000 (13:14 -0700)]
vc4: Add an "args" temporary for RCL setup.

9 years agovc4: Reuse (and extend) the packet.h sizes for dumping.
Eric Anholt [Tue, 23 Jun 2015 00:31:24 +0000 (17:31 -0700)]
vc4: Reuse (and extend) the packet.h sizes for dumping.

9 years agovc4: Fix printfs for blit fallbacks.
Eric Anholt [Sat, 20 Jun 2015 22:30:19 +0000 (15:30 -0700)]
vc4: Fix printfs for blit fallbacks.

9 years agotgsi_to_nir: Fix translation of TXF on MSAA targets.
Eric Anholt [Tue, 23 Jun 2015 18:02:12 +0000 (11:02 -0700)]
tgsi_to_nir: Fix translation of TXF on MSAA targets.

Noticed while trying to add GL_ARB_texture_multisample support to vc4.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agoi965/fs: Get rid of an unused variable in emit_barrier()
Jason Ekstrand [Tue, 23 Jun 2015 22:39:42 +0000 (15:39 -0700)]
i965/fs: Get rid of an unused variable in emit_barrier()

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoi965: Remove the brw_context from the visitors
Jason Ekstrand [Tue, 23 Jun 2015 00:17:56 +0000 (17:17 -0700)]
i965: Remove the brw_context from the visitors

As of this commit, nothing actually needs the brw_context.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965/vec4_vs: Add an explicit use_legacy_snorm_formula flag
Jason Ekstrand [Tue, 23 Jun 2015 00:30:23 +0000 (17:30 -0700)]
i965/vec4_vs: Add an explicit use_legacy_snorm_formula flag

This way we can stop doing is_gles3 checks inside of the compiler.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965/vec4: Turn some _mesa_problem calls into asserts
Jason Ekstrand [Tue, 23 Jun 2015 00:17:51 +0000 (17:17 -0700)]
i965/vec4: Turn some _mesa_problem calls into asserts

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965/vs: Pass the current set of clip planes through run() and run_vs()
Jason Ekstrand [Sat, 20 Jun 2015 00:29:42 +0000 (17:29 -0700)]
i965/vs: Pass the current set of clip planes through run() and run_vs()

Previously, these were pulled out of the GL context conditionally based on
whether we were running ff/ARB or a GLSL program.  Now, we just pass them
in so that the visitor doesn't have to grab them itself.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965/fs: Add a do_rep_send flag to run_fs
Jason Ekstrand [Sat, 20 Jun 2015 00:25:28 +0000 (17:25 -0700)]
i965/fs: Add a do_rep_send flag to run_fs

Previously, we were pulling it from brw->do_rep_send

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965: Pull calls to get_shader_time_index out of the visitor
Jason Ekstrand [Fri, 19 Jun 2015 22:40:09 +0000 (15:40 -0700)]
i965: Pull calls to get_shader_time_index out of the visitor

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965: Use a single index per shader for shader_time.
Jason Ekstrand [Fri, 19 Jun 2015 21:46:03 +0000 (14:46 -0700)]
i965: Use a single index per shader for shader_time.

Previously, each shader took 3 shader time indices which were potentially
at arbirary points in the shader time buffer.  Now, each shader gets a
single index which refers to 3 consecutive locations in the buffer.  This
simplifies some of the logic at the cost of having a magic 3 a few places.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965: Add compiler options to brw_compiler
Jason Ekstrand [Thu, 16 Apr 2015 22:28:17 +0000 (15:28 -0700)]
i965: Add compiler options to brw_compiler

This creates the options at screen cration time and then we just copy them
into the context at context creation time.  We also move is_scalar to the
brw_compiler structure.

We also end up manually setting some values that the core would have set by
default for us.  Fortunately, there are only two non-zero shader compiler
option defaults that we aren't overriding anyway so this isn't a big deal.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965/fs: Plumb compiler debug logging through brw_compiler
Jason Ekstrand [Tue, 23 Jun 2015 00:01:22 +0000 (17:01 -0700)]
i965/fs: Plumb compiler debug logging through brw_compiler

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965/fs: Do the no16 perf logging directly in fs_visitor::no16()
Jason Ekstrand [Mon, 22 Jun 2015 23:32:06 +0000 (16:32 -0700)]
i965/fs: Do the no16 perf logging directly in fs_visitor::no16()

While we're at it, we'll drop the note about 10-20% performance loss.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965/fs: Make no16 non-variadic
Jason Ekstrand [Mon, 22 Jun 2015 23:30:04 +0000 (16:30 -0700)]
i965/fs: Make no16 non-variadic

We never used the fact that it was variadic anyway.

Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965: Move INTEL_DEBUG variable parsing to screen creation time
Jason Ekstrand [Fri, 17 Apr 2015 00:39:13 +0000 (17:39 -0700)]
i965: Move INTEL_DEBUG variable parsing to screen creation time

v2: Do bufmgr set_debug and set_aub_dump at screen time as well.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965: Remove the dependance on brw_context from the generators
Jason Ekstrand [Thu, 16 Apr 2015 21:34:04 +0000 (14:34 -0700)]
i965: Remove the dependance on brw_context from the generators

Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoi965: Plumb compiler debug logging through a function pointer in brw_compiler
Jason Ekstrand [Thu, 16 Apr 2015 21:13:52 +0000 (14:13 -0700)]
i965: Plumb compiler debug logging through a function pointer in brw_compiler

v2 (Ken): Make shader_debug_log a printf-like function.
v3 (Jason): Add a void * to pass the brw_context through

Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agomesa: Add a va_args variant of _mesa_gl_debug().
Kenneth Graunke [Sat, 18 Apr 2015 19:23:33 +0000 (12:23 -0700)]
mesa: Add a va_args variant of _mesa_gl_debug().

This will be useful for wrapper functions.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
9 years agoi965: Replace some instances of brw->gen with devinfo->gen
Jason Ekstrand [Sat, 20 Jun 2015 00:19:38 +0000 (17:19 -0700)]
i965: Replace some instances of brw->gen with devinfo->gen

9 years agoi965: Initialize backend_shader::mem_ctx in its constructor.
Matt Turner [Mon, 22 Jun 2015 18:42:15 +0000 (11:42 -0700)]
i965: Initialize backend_shader::mem_ctx in its constructor.

We were initializing it in each subclasses' constructors for some
reason.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoi965: Assert that the GL primitive isn't out of range.
Matt Turner [Mon, 22 Jun 2015 18:20:32 +0000 (11:20 -0700)]
i965: Assert that the GL primitive isn't out of range.

Coverity sees the if (mode >= BRW_PRIM_OFFSET (128)) test and assumes
that the else-branch might execute for mode to up 127, which out be out
of bounds.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoi965/cfg: Assert that cur_do/while/if pointers are non-NULL.
Matt Turner [Mon, 22 Jun 2015 18:09:49 +0000 (11:09 -0700)]
i965/cfg: Assert that cur_do/while/if pointers are non-NULL.

Coverity sees that the functions immediately below the new assertions
dereference these pointers, but is unaware that an ENDIF always follows
an IF, etc.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agomesa: Delete unused ICEIL().
Matt Turner [Sat, 20 Jun 2015 03:40:15 +0000 (20:40 -0700)]
mesa: Delete unused ICEIL().

Can't find any uses of it in git history.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoi965/fs: Don't mess up stride for uniform integer multiplication.
Matt Turner [Mon, 22 Jun 2015 17:59:33 +0000 (10:59 -0700)]
i965/fs: Don't mess up stride for uniform integer multiplication.

If the stride is 0, the source is a uniform and we should not modify the
stride.

Cc: "10.6" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91047
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agoegl/x11: Remove duplicate call to dri2_x11_add_configs_for_visuals
Boyan Ding [Sat, 13 Jun 2015 07:33:20 +0000 (15:33 +0800)]
egl/x11: Remove duplicate call to dri2_x11_add_configs_for_visuals

The call to dri2_x11_add_configs_for_visuals (previously
dri2_add_configs_for_visuals) was moved downwards in commit f8c5b8a1,
but appeared again in its original position after its rename in
d019cd81. Remove it.

Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agoi965/gen9: Don't use encrypted MOCS
Ben Widawsky [Wed, 17 Jun 2015 22:50:13 +0000 (15:50 -0700)]
i965/gen9: Don't use encrypted MOCS

On gen9+ MOCS is an index into a table. It is 7 bits, and AFAICT, bit 0 is for
doing encrypted reads.

I don't recall how I decided to do this for BXT. I don't know this patch was
ever needed, since it seems nothing is broken today on SKL. Furthermore, this
patch may no longer be needed because of the ongoing changes with MOCS setup. It
is what is being used/tested, so it's included in the series.

The chosen values are the old values left shifted. That was also an arbitrary
choice.

v2: Use shift in MOCS to make it clear what we're doing. (Ken)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agonv50,nvc0: make sure to pushbuf_refn before putting bo into pushbuf_data
Ilia Mirkin [Sun, 21 Jun 2015 23:03:35 +0000 (19:03 -0400)]
nv50,nvc0: make sure to pushbuf_refn before putting bo into pushbuf_data

Without first running the bo through pushbuf_refn, the nouveau drm
library will have uninitialized structures regarding this bo, and will
insert incorrect data.

This fixes supertuxkart 0.9 crash on start (where it ends up doing a lot
of indirect draws).

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>