Alexander von Gluck IV [Fri, 4 Oct 2013 15:26:03 +0000 (15:26 +0000)]
haiku: Clean up code, use target-helpers
* Thanks for the help xexaxo!
Alexander von Gluck IV [Thu, 3 Oct 2013 21:05:23 +0000 (21:05 +0000)]
haiku: Drop haiku-softpipe.c; fix extern C
* It isn't needed any longer as we're
moving in the code that called it.
* The winsys code is C, so make sure
we include the header in the extern C
Alexander von Gluck IV [Thu, 3 Oct 2013 02:14:20 +0000 (02:14 +0000)]
haiku: Correct Haiku softpipe library
* Use LoadableModule vs SharedLibrary
Alexander von Gluck IV [Thu, 3 Oct 2013 01:22:48 +0000 (01:22 +0000)]
haiku: Add first Haiku renderer (softpipe)
* This shared library gets parsed by the
system as a system "add-on"
Alexander von Gluck IV [Tue, 1 Oct 2013 21:03:48 +0000 (21:03 +0000)]
haiku: Build Haiku's libGL from within Mesa
* This in essence means that Mesa would be
taking control of Haiku's OpenGL kit.
* This works by dispatching renderers from the
OpenGL add-ons directory
Vinson Lee [Fri, 4 Oct 2013 18:24:03 +0000 (11:24 -0700)]
glsl: Define isnormal for Oracle Solaris Studio.
This patch fixes this Oracle Solaris Studio build error.
"../../src/glsl/ir_constant_expression.cpp", line 1398: Error: The function "isnormal" must have a prototype.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Grigori Goronzy [Wed, 2 Oct 2013 22:12:55 +0000 (00:12 +0200)]
r600g: texture offsets for non-TXF instructions
All texture instructions can use offsets, not just TXF. Offsets into
the literals array were wrong, too.
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Marek Olšák [Fri, 4 Oct 2013 17:58:57 +0000 (19:58 +0200)]
r600g: remove an assertion causing a crash at context cleanup
Compute samplers are advertised, but not implemented.
I think that's intentional.
Marek Olšák [Fri, 4 Oct 2013 15:14:07 +0000 (17:14 +0200)]
r300g: remove unused function r300_lacks_vertex_textures
Ian Romanick [Thu, 5 Sep 2013 19:47:13 +0000 (12:47 -0700)]
mesa: Don't return any data for GL_SHADER_BINARY_FORMATS
We return 0 for GL_NUM_SHADER_BINARY_FORMATS, so
GL_SHADER_BINARY_FORMATS should not write any data to the application
buffer.
Fixes piglit test 'arb_get_program_binary-overrun shader'.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Brian Paul [Thu, 3 Oct 2013 17:51:14 +0000 (11:51 -0600)]
svga: fix incorrect memcpy src in svga_buffer_upload_piecewise()
As we march over the source buffer we're uploading in pieces, we
need to memcpy from the current offset, not the start of the buffer.
Fixes graphical corruption when drawing very large vertex buffers.
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Matthew McClure <mcclurem@vmware.com>
Matthew McClure [Thu, 26 Sep 2013 23:57:26 +0000 (16:57 -0700)]
util: when packing depth values, round to nearest.
This patch adds the lrint, lrintf, llrint, and llrintf rounding utility
functions. When packing unorm depth values, we will round to nearest.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Tom Stellard [Thu, 3 Oct 2013 21:39:59 +0000 (17:39 -0400)]
radeonsi/compute: Fix segfault caused by recent refactoring
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Brian Paul [Fri, 4 Oct 2013 00:26:18 +0000 (17:26 -0700)]
radeonsi: Fix build
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
https://bugs.freedesktop.org/show_bug.cgi?id=70106
Emil Velikov [Thu, 3 Oct 2013 22:23:20 +0000 (23:23 +0100)]
configure: set HAVE_COMMON_DRI when building only swrast
With commit
cb1febb07, I have incorrectly removed HAVE_COMMON_DRI
assuming that swrast does not need to build the translations for
driconf options, as effectively swrast/drisw does not use them.
With the incoming unification work of dri and drisw, it makes
sense just to revert the offending hunk.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70057
Reported-by: Vinson Lee <vlee@freedesktop.org>
Tested-by: Vinson Lee <vlee@freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Brian Paul [Thu, 3 Oct 2013 23:31:49 +0000 (17:31 -0600)]
radeonsi/compute: fix bind_compute_sampler_states() breakage
Remove the assignment and the no-op function.
Paul Berry [Fri, 20 Sep 2013 16:04:31 +0000 (09:04 -0700)]
i965/fs: Improve accuracy of dFdy() to match dFdx().
Previously, we computed dFdy() using the following instruction:
add(8) dst<1>F src<4,4,0)F -src.2<4,4,0>F { align1 1Q }
That had the disadvantage that it computed the same value for all 4
pixels of a 2x2 subspan, which meant that it was less accurate than
dFdx(). This patch changes it to the following instruction when
c->key.high_quality_derivatives is set:
add(8) dst<1>F src<4,4,1>.xyxyF -src<4,4,1>.zwzwF { align16 1Q }
This gives it comparable accuracy to dFdx().
Unfortunately, align16 instructions can't be compressed, so in SIMD16
shaders, instead of emitting this instruction:
add(16) dst<1>F src<4,4,1>.xyxyF -src<4,4,1>.zwzwF { align16 1H }
We need to unroll to two instructions:
add(8) dst<1>F src<4,4,1>.xyxyF -src<4,4,1>.zwzwF { align16 1Q }
add(8) (dst+1)<1>F (src+1)<4,4,1>.xyxyF -(src+1)<4,4,1>.zwzwF { align16 2Q }
Fixes piglit test spec/glsl-1.10/execution/fs-dfdy-accuracy.
Acked-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Brian Paul [Thu, 3 Oct 2013 20:24:55 +0000 (14:24 -0600)]
gallium/tests: fix SHADER typo
Emil Velikov [Thu, 29 Aug 2013 11:25:00 +0000 (05:25 -0600)]
gallium-egl: use standard variable types over EGLBoolean/EGLint
The inferface/prototype in native_wayland_bufmgr.h uses boolean/int, as
well as the rest of the file. Convert to improve consistency and to
prevent gcc compiler warnings due to type miss-match.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Brian Paul [Thu, 12 Sep 2013 23:31:28 +0000 (17:31 -0600)]
gallium: remove old bind_*_sampler_states() functions
The new bind_sampler_states() function takes a shader argument to
specify the shader stage.
Brian Paul [Thu, 12 Sep 2013 23:31:08 +0000 (17:31 -0600)]
gallium/docs: update bind_sampler_states() documentation
Brian Paul [Thu, 12 Sep 2013 23:30:50 +0000 (17:30 -0600)]
cso: make sure all sampler states are set/cleared
Brian Paul [Thu, 12 Sep 2013 22:11:03 +0000 (16:11 -0600)]
freedreno: use new bind_sampler_states() function
Brian Paul [Thu, 12 Sep 2013 22:10:06 +0000 (16:10 -0600)]
svga: don't hook in old bind_fragment_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:45:52 +0000 (15:45 -0600)]
radeon: don't use old bind_vertex/fragment_sampler_states() hooks
Brian Paul [Thu, 12 Sep 2013 21:41:39 +0000 (15:41 -0600)]
i915g: remove old bind_vertex/fragment_sampler_states() hooks
Brian Paul [Thu, 12 Sep 2013 21:38:06 +0000 (15:38 -0600)]
noop: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:36:51 +0000 (15:36 -0600)]
galahad: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:34:02 +0000 (15:34 -0600)]
vl: remove old bind_fragment_sampler_states() calls
Brian Paul [Thu, 12 Sep 2013 21:33:44 +0000 (15:33 -0600)]
util: remove old bind_fragment_sampler_states() calls from blitter code
Brian Paul [Thu, 12 Sep 2013 21:25:08 +0000 (15:25 -0600)]
draw: remove use of old bind_fragment_sampler_states()
Brian Paul [Fri, 13 Sep 2013 00:14:02 +0000 (18:14 -0600)]
nouveau: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:24:22 +0000 (15:24 -0600)]
cso: remove use of old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:19:46 +0000 (15:19 -0600)]
rbug: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:18:59 +0000 (15:18 -0600)]
identity: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:18:16 +0000 (15:18 -0600)]
trace: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:17:27 +0000 (15:17 -0600)]
ilo: don't hook up old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:16:14 +0000 (15:16 -0600)]
llvmpipe: remove old bind_*_sampler_states() functions
Brian Paul [Thu, 12 Sep 2013 21:16:07 +0000 (15:16 -0600)]
softpipe: remove old bind_*_sampler_states() functions
Brian Paul [Mon, 16 Sep 2013 16:21:07 +0000 (10:21 -0600)]
clover: remove bind_compute_sampler_states() calls
Brian Paul [Thu, 12 Sep 2013 21:40:13 +0000 (15:40 -0600)]
gallium/tests: use pipe_context::bind_sampler_states()
Brian Paul [Fri, 13 Sep 2013 00:11:45 +0000 (18:11 -0600)]
gallium/tools: update dump_state.py to use bind_sampler_states()
Brian Paul [Fri, 13 Sep 2013 00:09:33 +0000 (18:09 -0600)]
nouveau: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:09:10 +0000 (15:09 -0600)]
softpipe: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:09:01 +0000 (15:09 -0600)]
radeon: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:08:42 +0000 (15:08 -0600)]
svga: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:08:10 +0000 (15:08 -0600)]
trace: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:08:04 +0000 (15:08 -0600)]
rbug: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:57 +0000 (15:07 -0600)]
noop: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:48 +0000 (15:07 -0600)]
llvmpipe: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:39 +0000 (15:07 -0600)]
ilo: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:33 +0000 (15:07 -0600)]
identity: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:21 +0000 (15:07 -0600)]
i915g: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:07:10 +0000 (15:07 -0600)]
galahad: implement pipe_context::bind_sampler_states()
Brian Paul [Thu, 12 Sep 2013 21:06:56 +0000 (15:06 -0600)]
clover: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 21:06:44 +0000 (15:06 -0600)]
vl: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 21:06:33 +0000 (15:06 -0600)]
util: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 21:06:23 +0000 (15:06 -0600)]
draw: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 20:59:14 +0000 (14:59 -0600)]
cso: use pipe_context::bind_sampler_states() if non-null
Brian Paul [Thu, 12 Sep 2013 20:55:06 +0000 (14:55 -0600)]
gallium: add pipe_context::bind_sampler_states()
The bind_vertex/geometry/fragment/compute_sampler_states() functions
will be replaced by a single functions.
Brian Paul [Thu, 12 Sep 2013 19:57:42 +0000 (13:57 -0600)]
r300g: rename r300_bind_sampler_states to r300_bind_fragment_sampler_states
Brian Paul [Thu, 12 Sep 2013 19:43:14 +0000 (13:43 -0600)]
draw: rename bind_sampler_states variables
Put 'fragment' in the names. In preparation for upcoming function
renaming.
Marek Olšák [Thu, 3 Oct 2013 16:16:08 +0000 (18:16 +0200)]
r600g: fix ínitialization of non_disp_tiling flag
This fixes a regression caused by
e64633e8c3a5498998a45ab721bf80edca101cf5
Marek Olšák [Thu, 3 Oct 2013 14:39:50 +0000 (16:39 +0200)]
r600g,radeonsi: create aux_context last
This fixes a regression caused by
68f6dec32ed5eede361f76c8dbdf897652659baf.
Marek Olšák [Fri, 20 Sep 2013 13:13:45 +0000 (15:13 +0200)]
r300g/swtcl: don't call draw_prepare_shader_outputs
Brian Paul [Thu, 3 Oct 2013 15:13:39 +0000 (09:13 -0600)]
st/mesa: silence warning about unhandled enum in switch statement
Chris Forbes [Thu, 3 Oct 2013 01:10:08 +0000 (14:10 +1300)]
mesa: fix make check for ARB_texture_gather
Clean up inconsistency in enum decoration:
- Use the undecorated enums where possible.
- MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB remains decorated, since it
has no undecorated equivalent in GL4.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70054
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Wed, 2 Oct 2013 18:58:12 +0000 (07:58 +1300)]
docs: Mark off ARB_texture_gather
Chris Forbes [Mon, 30 Sep 2013 09:53:14 +0000 (22:53 +1300)]
i965/hsw: Apply gather4 RG32F w/a using SCS instead of shader.
The new surface channel select bits allow us to avoid having to
recompile the shader for this workaround.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-and-tested-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 24 Mar 2013 07:18:55 +0000 (20:18 +1300)]
i965: Enable ARB_texture_gather on Gen7
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 15 Sep 2013 06:23:14 +0000 (18:23 +1200)]
i965: use gather slots in the binding table for gather4.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 15 Sep 2013 05:58:12 +0000 (17:58 +1200)]
i965: Emit a second set of SURFACE_STATE for gather4 from textures.
This allows us to use a different surface format for gather4, which is
required for R32G32_FLOAT to work on Gen7.
V4: - Only emit alternate surface state for shaders which will actually
use it.
- Pass a simple 'for_gather' flag rather than a function pointer.
The callee can decide what w/a to apply.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 15 Sep 2013 06:11:37 +0000 (18:11 +1200)]
i965: make room in the binding table for a full alternate set of surface_states
Worst-case is that *every* texunit uses a format that needs overriding.
V4: Place the gather slots last, so shaders which don't use gather don't
get penalized by having a huge binding table.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 10 Aug 2013 23:46:18 +0000 (11:46 +1200)]
i965: Add BRW_SURFACEFORMAT_R32G32_FLOAT_LD, required for IVB gather4 w/a
gather4 GREEN channel against a surface with format R32G32_FLOAT doesn't work
correctly on IVB. w/a from bspec:
- use R32G32_FLOAT_LD = 0x97 instead, for gather4 only.
- select BLUE channel to read GREEN
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 10 Aug 2013 21:55:30 +0000 (09:55 +1200)]
i965: w/a for gather4 green RG32F
V4: Only flag quirks if there are any uses of gather in the shader,
to avoid spurious recompiles just because someone happened to use
RG32F.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Wed, 25 Sep 2013 04:56:36 +0000 (16:56 +1200)]
glsl: flag shaders which use gather4 at all
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 31 Mar 2013 08:39:37 +0000 (21:39 +1300)]
i965/vs: Add support for ir_tg4
Pretty much the same as the FS case. Channel select goes in the header,
V2: Less mangling.
V3: Avoid sampling at all, for degenerate swizzles.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 31 Mar 2013 08:33:51 +0000 (21:33 +1300)]
i965/fs: Add support for ir_tg4
Lowers ir_tg4 (from textureGather and textureGatherOffset builtins) to
SHADER_OPCODE_TG4.
The usual post-sampling swizzle workaround can't work for ir_tg4,
so avoid doing that:
* For R/G/B/A swizzles use the hardware channel select (lives in the
same dword in the header as the texel offset), and then don't do
anything afterward in the shader.
* For 0/1 swizzles blast the appropriate constant over all the output
channels instead of sampling.
V2: Avoid duplicating header enabling block
V3: Avoid sampling at all, for degenerate swizzles.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 31 Mar 2013 08:31:12 +0000 (21:31 +1300)]
i965: add SHADER_OPCODE_TG4
Adds the Gen7 message IDs, a new SHADER_OPCODE_TG4 pseudo-op, and
low-level support for emitting it via generate_tex().
V3: Updated for changes in master.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Maxence Le Dore [Sun, 23 Dec 2012 23:57:37 +0000 (00:57 +0100)]
glsl: add texture gather changes
V2 [Chris Forbes]:
- Add new pattern, fixup parameter reading.
V3: Rebase onto new builtins machinery
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Maxence Le Dore [Sun, 23 Dec 2012 23:57:02 +0000 (00:57 +0100)]
mesa: add texture gather changes
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Chris Forbes [Mon, 30 Sep 2013 09:10:17 +0000 (22:10 +1300)]
i965: fix bogus swizzle in brw_cubemap_normalize
When used with a cube array in VS, failed assertion in ir_validate:
Assignment count of LHS write mask channels enabled not
matching RHS vector size (3 LHS, 4 RHS).
To fix this, swizzle the RHS correctly for the writemask.
This showed up in the ARB_texture_gather tests, which exercise cube
arrays in the VS.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Vincent Lejeune [Wed, 25 Sep 2013 14:06:11 +0000 (16:06 +0200)]
r600/llvm: Adds support for MSAA
Vincent Lejeune [Thu, 5 Sep 2013 22:26:16 +0000 (00:26 +0200)]
r600g/llvm: Undef z and w component of 2D TXP inst
Vincent Lejeune [Tue, 21 May 2013 14:34:52 +0000 (16:34 +0200)]
r600g/llvm: fix txq for texture buffer
Chia-I Wu [Thu, 12 Sep 2013 05:00:52 +0000 (13:00 +0800)]
i965: compute DDX in a subspan based only on top row
Consider only the top-left and top-right pixels to approximate DDX in a 2x2
subspan, unless the application requests a more accurate approximation via
GL_FRAGMENT_SHADER_DERIVATIVE_HINT or this optimization is disabled from the
new driconf option disable_derivative_optimization.
This results in a less accurate approximation. However, it improves the
performance of Xonotic with Ultra settings by 24.3879% +/- 0.832202% (at 95.0%
confidence) on Haswell. No noticeable image quality difference observed.
The improvement comes from faster sample_d. It seems, on Haswell, some
optimizations are introduced to allow faster sample_d when all pixels in a
subspan have the same derivative. I considered SAMPLE_STATE too, which allows
one to control the quality of sample_d on Haswell. But it gave much worse
image quality without giving better performance comparing to this change.
No piglit quick.tests regression on Haswell (tested with v1).
v2: better guess for precompile program key
Signed-off-by: Chia-I Wu <olv@lunarg.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Chris Forbes [Mon, 30 Sep 2013 07:43:21 +0000 (20:43 +1300)]
i965/blorp: Use passed in framebuffer rather than ctx->DrawBuffer
We have the destination framebuffer object passed in; there's no need to
go digging around in the context.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Francisco Jerez [Wed, 2 Oct 2013 00:00:32 +0000 (17:00 -0700)]
ralloc: Remove the rzalloc-based new/delete operator definition macro.
Using it encourages the (IMHO worrying) practice of leaving member
variables uninitialized in constructor definitions. This macro
shouldn't be necessary anymore after the last patch series fixing all
its users to initialize all member variables from the class
constructor. Remove it.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Mon, 30 Sep 2013 17:54:48 +0000 (10:54 -0700)]
st/mesa: Switch glsl_to_tgsi_instruction to the non-zeroing allocator.
All member variables of glsl_to_tgsi_instruction are already being
initialized from its implicitly defined constructor, it's not
necessary to use rzalloc to allocate its memory.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Mon, 30 Sep 2013 17:53:16 +0000 (10:53 -0700)]
mesa/program: Switch ir_to_mesa_instruction to the non-zeroing allocator.
All member variables of ir_to_mesa_instruction are already being
initialized from its implicitly defined constructor, it's not
necessary to use rzalloc to allocate its memory.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 23:37:55 +0000 (16:37 -0700)]
i965: Switch vec4_live_variables to the non-zeroing allocator.
All member variables of vec4_live_variables are already being
initialized from its constructor, it's not necessary to use rzalloc to
allocate its memory, and doing so makes it more likely that we will
start relying on the allocator to zero out all memory if the class is
ever extended with new member variables.
That's bad because it ties objects to some specific allocation scheme,
and gives unpredictable results when an object is created with a
different allocator -- Stack allocation, array allocation, or
aggregation inside a different object are some of the useful
possibilities that come to my mind.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 23:36:37 +0000 (16:36 -0700)]
i965: Switch fs_live_variables to the non-zeroing allocator.
All member variables of fs_live_variables are already being
initialized from its constructor, it's not necessary to use rzalloc to
allocate its memory, and doing so makes it more likely that we will
start relying on the allocator to zero out all memory if the class is
ever extended with new member variables.
That's bad because it ties objects to some specific allocation scheme,
and gives unpredictable results when an object is created with a
different allocator -- Stack allocation, array allocation, or
aggregation inside a different object are some of the useful
possibilities that come to my mind.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 23:33:55 +0000 (16:33 -0700)]
i965: Switch fs_inst to the non-zeroing allocator.
All member variables of fs_inst are already being initialized from its
constructor, it's not necessary to use rzalloc to allocate its memory,
and doing so makes it more likely that we will start relying on the
allocator to zero out all memory if the class is ever extended with
new member variables.
That's bad because it ties objects to some specific allocation scheme,
and gives unpredictable results when an object is created with a
different allocator -- Stack allocation, array allocation, or
aggregation inside a different object are some of the useful
possibilities that come to my mind.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 23:31:16 +0000 (16:31 -0700)]
i965: Switch ip_record to the non-zeroing allocator.
All member variables of ip_record are already being initialized from
its constructor, it's not necessary to use rzalloc to allocate its
memory, and doing so makes it more likely that we will start relying
on the allocator to zero out all memory if the class is ever extended
with new member variables.
That's bad because it ties objects to some specific allocation scheme,
and gives unpredictable results when an object is created with a
different allocator -- Stack allocation, array allocation, or
aggregation inside a different object are some of the useful
possibilities that come to my mind.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 23:29:48 +0000 (16:29 -0700)]
i965: Initialize all member variables of cfg_t on construction.
The cfg_t object relies on the memory allocator zeroing out its
contents before it's initialized, which is quite an unusual practice
in the C++ world because it ties objects to some specific allocation
scheme, and gives unpredictable results when an object is created with
a different allocator -- Stack allocation, array allocation, or
aggregation inside a different object are some of the useful
possibilities that come to my mind. Initialize all fields from the
constructor and stop using the zeroing allocator.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 23:27:42 +0000 (16:27 -0700)]
i965: Initialize all member variables of bblock_t on construction.
The bblock_t object relies on the memory allocator zeroing out its
contents before it's initialized, which is quite an unusual practice
in the C++ world because it ties objects to some specific allocation
scheme, and gives unpredictable results when an object is created with
a different allocator -- Stack allocation, array allocation, or
aggregation inside a different object are some of the useful
possibilities that come to my mind. Initialize all fields from the
constructor and stop using the zeroing allocator.
v2: Use zero initialization for numeric types instead of default construction.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 23:23:30 +0000 (16:23 -0700)]
glsl: Switch ast_type_qualifier to the non-zeroing allocator.
All member variables of ast_type_qualifier are already being
initialized from its implicitly defined constructor, it's not
necessary to use rzalloc to allocate its memory.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Fri, 20 Sep 2013 22:36:38 +0000 (15:36 -0700)]
glsl: Switch ast_node to the non-zeroing allocator.
All member variables of ast_node are already being initialized from
its constructor, but some of its derived classes were leaving members
uninitialized -- Fix them.
Using rzalloc makes it more likely that we will start relying on the
allocator to zero out all memory if the class is ever extended with
new member variables. That's bad because it ties objects to some
specific allocation scheme, and gives unpredictable results when an
object is created with a different allocator -- Stack allocation,
array allocation, or aggregation inside a different object are some of
the useful possibilities that come to my mind.
v2: Use NULL initialization instead of default construction for pointers.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Wed, 11 Sep 2013 23:20:18 +0000 (16:20 -0700)]
i965: Initialize all member variables of vec4_instruction on construction.
The vec4_instruction object relies on the memory allocator zeroing out
its contents before it's initialized, which is quite an unusual
practice in the C++ world because it ties objects to some specific
allocation scheme, and gives unpredictable results when an object is
created with a different allocator -- Stack allocation, array
allocation, or aggregation inside a different object are some of the
useful possibilities that come to my mind. Initialize all fields from
the constructor and stop using the zeroing allocator.
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Francisco Jerez [Thu, 12 Sep 2013 03:07:53 +0000 (20:07 -0700)]
glsl: Initialize all member variables of _mesa_glsl_parse_state on construction.
The _mesa_glsl_parse_state object relies on the memory allocator
zeroing out its contents before it's initialized, which is quite an
unusual practice in the C++ world because it ties objects to some
specific allocation scheme, and gives unpredictable results when an
object is created with a different allocator -- Stack allocation,
array allocation, or aggregation inside a different object are some of
the useful possibilities that come to my mind. Initialize all fields
from the constructor and stop using the zeroing allocator.
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>