summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2013-10-03nouveau: implement pipe_context::bind_sampler_states()Brian Paul6-2/+76
2013-10-03softpipe: implement pipe_context::bind_sampler_states()Brian Paul1-0/+1
2013-10-03radeon: implement pipe_context::bind_sampler_states()Brian Paul3-0/+49
2013-10-03svga: implement pipe_context::bind_sampler_states()Brian Paul1-0/+1
2013-10-03trace: implement pipe_context::bind_sampler_states()Brian Paul1-28/+42
2013-10-03rbug: implement pipe_context::bind_sampler_states()Brian Paul1-0/+34
2013-10-03noop: implement pipe_context::bind_sampler_states()Brian Paul1-0/+7
2013-10-03llvmpipe: implement pipe_context::bind_sampler_states()Brian Paul1-0/+1
2013-10-03ilo: implement pipe_context::bind_sampler_states()Brian Paul1-0/+21
2013-10-03identity: implement pipe_context::bind_sampler_states()Brian Paul1-15/+21
2013-10-03i915g: implement pipe_context::bind_sampler_states()Brian Paul1-0/+22
2013-10-03galahad: implement pipe_context::bind_sampler_states()Brian Paul1-12/+18
2013-10-03clover: use pipe_context::bind_sampler_states() if non-nullBrian Paul1-2/+7
2013-10-03vl: use pipe_context::bind_sampler_states() if non-nullBrian Paul7-8/+49
2013-10-03util: use pipe_context::bind_sampler_states() if non-nullBrian Paul1-6/+22
2013-10-03draw: use pipe_context::bind_sampler_states() if non-nullBrian Paul2-7/+97
2013-10-03cso: use pipe_context::bind_sampler_states() if non-nullBrian Paul1-21/+44
2013-10-03gallium: add pipe_context::bind_sampler_states()Brian Paul1-0/+5
The bind_vertex/geometry/fragment/compute_sampler_states() functions will be replaced by a single functions.
2013-10-03r300g: rename r300_bind_sampler_states to r300_bind_fragment_sampler_statesBrian Paul1-4/+4
2013-10-03draw: rename bind_sampler_states variablesBrian Paul2-19/+19
Put 'fragment' in the names. In preparation for upcoming function renaming.
2013-10-03r600g: fix ínitialization of non_disp_tiling flagMarek Olšák1-4/+5
This fixes a regression caused by e64633e8c3a5498998a45ab721bf80edca101cf5
2013-10-03r600g,radeonsi: create aux_context lastMarek Olšák3-2/+6
This fixes a regression caused by 68f6dec32ed5eede361f76c8dbdf897652659baf.
2013-10-03r300g/swtcl: don't call draw_prepare_shader_outputsMarek Olšák1-1/+0
2013-10-03st/mesa: silence warning about unhandled enum in switch statementBrian Paul1-0/+3
2013-10-03mesa: fix make check for ARB_texture_gatherChris Forbes4-5/+8
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>
2013-10-03i965/hsw: Apply gather4 RG32F w/a using SCS instead of shader.Chris Forbes2-8/+11
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>
2013-10-03i965: Enable ARB_texture_gather on Gen7Chris Forbes2-0/+5
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2013-10-03i965: use gather slots in the binding table for gather4.Chris Forbes2-4/+12
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2013-10-03i965: Emit a second set of SURFACE_STATE for gather4 from textures.Chris Forbes3-8/+39
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>
2013-10-03i965: make room in the binding table for a full alternate set of surface_statesChris Forbes1-2/+18
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>
2013-10-03i965: Add BRW_SURFACEFORMAT_R32G32_FLOAT_LD, required for IVB gather4 w/aChris Forbes2-0/+2
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>
2013-10-03i965: w/a for gather4 green RG32FChris Forbes4-0/+22
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>
2013-10-03glsl: flag shaders which use gather4 at allChris Forbes2-0/+11
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2013-10-03i965/vs: Add support for ir_tg4Chris Forbes2-2/+45
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>
2013-10-03i965/fs: Add support for ir_tg4Chris Forbes2-3/+60
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>
2013-10-03i965: add SHADER_OPCODE_TG4Chris Forbes6-2/+17
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>
2013-10-03glsl: add texture gather changesMaxence Le Dore14-4/+60
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>
2013-10-03mesa: add texture gather changesMaxence Le Dore8-1/+36
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2013-10-03i965: fix bogus swizzle in brw_cubemap_normalizeChris Forbes1-4/+6
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>
2013-10-02r600/llvm: Adds support for MSAAVincent Lejeune3-1/+54
2013-10-02r600g/llvm: Undef z and w component of 2D TXP instVincent Lejeune1-1/+2
2013-10-02r600g/llvm: fix txq for texture bufferVincent Lejeune3-2/+9
2013-10-02i965: compute DDX in a subspan based only on top rowChia-I Wu7-8/+49
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>
2013-10-02i965/blorp: Use passed in framebuffer rather than ctx->DrawBufferChris Forbes1-4/+4
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>
2013-10-01ralloc: Remove the rzalloc-based new/delete operator definition macro.Francisco Jerez1-14/+12
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>
2013-10-01st/mesa: Switch glsl_to_tgsi_instruction to the non-zeroing allocator.Francisco Jerez1-1/+1
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>
2013-10-01mesa/program: Switch ir_to_mesa_instruction to the non-zeroing allocator.Francisco Jerez1-1/+1
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>
2013-10-01i965: Switch vec4_live_variables to the non-zeroing allocator.Francisco Jerez1-1/+1
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>
2013-10-01i965: Switch fs_live_variables to the non-zeroing allocator.Francisco Jerez1-1/+1
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>
2013-10-01i965: Switch fs_inst to the non-zeroing allocator.Francisco Jerez1-1/+1
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>