aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* i965: Require pixel alignment for GPU copy blitCody Northrop2014-12-162-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | The blitter will start at a pixel's natural alignment. For PBOs, if the provided offset if not aligned, bits will get dropped. This change adds offset alignment check for src and dst, kicking back if the requirements are not met. The change is based on following verbiage from BSPEC: Color pixel sizes supported are 8, 16, and 32 bits per pixel (bpp). All pixels are naturally aligned. Found in the following locations: page 35 of intel-gfx-prm-osrc-hsw-blitter.pdf page 29 of ivb_ihd_os_vol1_part4.pdf page 29 of snb_ihd_os_vol1_part5.pdf This behavior was observed with Steam Big Picture rendering incorrect icon colors. The fix has been tested on Ubuntu and SteamOS on Haswell. Signed-off-by: Cody Northrop <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83908 Reviewed-by: Neil Roberts <[email protected]>
* i965: remove includes of sampler.h from extern "C" blocksMark Janes2014-12-164-5/+4
| | | | | | | | | C linkage was removed from functions in program/sampler.cpp. However, some cpp files include program/sampler.h within extern "C" blocks, causing link errors for test_vec4_copy_propagation. Reviewed-by: Brian Paul <[email protected]> Tested-by: Ian Romanick <[email protected]>
* i965/query: Cache whether the batch references the query BO.Kenneth Graunke2014-12-162-4/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chris Wilson noted that repeated calls to CheckQuery() would call drm_intel_bo_references(brw->batch.bo, query->bo) on each invocation, which is expensive. Once we've flushed, we know that future batches won't reference query->bo, so there's no point in asking more than once. This patch adds a brw_query_object::flushed flag, which is a conservative estimate of whether the batch has been flushed. On the first call to CheckQuery() or WaitQuery(), we check if the batch references query->bo. If not, it must have been flushed for some reason (such as being full). We record that it was flushed. If it does reference query->bo, we explicitly flush, and record that we did so. Any subsequent checks will simply see that query->flushed is set, and skip the drm_intel_bo_references() call. Inspired by a patch from Chris Wilson. According to Eero, this does not affect the performance of Witcher 2 on Haswell, but approximately halves the userspace CPU usage. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86969 Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ben Widawsky <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965/query: Use brw_bo_map to handle stall warnings.Kenneth Graunke2014-12-161-7/+1
| | | | | | | | | | This is less code and also measures the duration of the stall for us. Our old code predates the existance of brw_bo_map(). Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ben Widawsky <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965/query: Remove redundant drm_intel_bo_references call in CheckQuery.Kenneth Graunke2014-12-161-7/+8
| | | | | | | | | | | | | | | | | | | | | | CheckQuery calls drm_intel_bo_references to see if the batch references the query BO, and if so, flushes. It then checks if the query BO is busy, and if not, calls gen6_queryobj_get_results(). Stupidly, gen6_queryobj_get_results() immediately did a second redundant drm_intel_bo_references check, even though we know the buffer is not referenced and in fact idle. This patch moves the batch-flush check out of gen6_queryobj_get_results and into WaitQuery() (the other caller). That way, both callers do a single batch-flush check. This should only be a minor improvement, since it would only affect the first CheckQuery call where the result is actually available. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86969 Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ben Widawsky <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965/query: Add query->bo == NULL early return in CheckQuery hook.Kenneth Graunke2014-12-161-2/+8
| | | | | | | | | | | If query->bo == NULL, this is a redundant CheckQuery call, and we should simply return. We didn't do anything anyway - we skipped the batch flushing block, and although we called get_results(), it has an early return and does nothing. Why bother? Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ben Widawsky <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* i965/query: Set Ready flag in gen6_queryobj_get_results().Kenneth Graunke2014-12-161-2/+2
| | | | | | | | | | | | | | | q->Ready means that the results are in, and core Mesa is free to return them to the application. gen6_queryobj_get_results() is a natural place to set that flag; doing so means callers don't have to. The older non-hardware-context aware code couldn't do this, because we had to call brw_queryobj_get_results() to gather intermediate results when we ran out of space for snapshots in the query buffer. We only gather complete results in the Gen6+ code, however. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ben Widawsky <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove support for GCC older than 4.1.0Timothy Arceri2014-12-171-1/+1
| | | | | | | Signed-off-by: Timothy Arceri <[email protected]> Reviewed-By: Jose Fonseca <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* i965/fs: Add a comment explaining what saturate propagation does.Matt Turner2014-12-161-0/+14
|
* st/mesa: remove extern "C" around #includes in st_glsl_to_tgsi.cppBrian Paul2014-12-161-4/+2
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* program: remove extern "C" usage in sampler.cppBrian Paul2014-12-161-5/+4
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* program: remove extern "C" around #includesBrian Paul2014-12-161-4/+3
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* st/mesa: add extern "C" to st_context.hBrian Paul2014-12-161-0/+10
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* st/mesa: add extern "C" to st_program.hBrian Paul2014-12-161-0/+9
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* main: remove extern C around #includes in ff_fragment_shader.cppBrian Paul2014-12-161-5/+3
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* mesa: move #include of mtypes.h outside __cplusplus checkBrian Paul2014-12-161-2/+1
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* program: add #ifndef SAMPLER_H wrapperBrian Paul2014-12-161-0/+7
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* mesa: put extern "C" in src/mesa/program/*h header filesBrian Paul2014-12-164-0/+43
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* mesa: put extern "C" in header filesBrian Paul2014-12-164-0/+41
| | | | | Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* i965: add test_vf_float_conversions to .gitignoreJuha-Pekka Heikkila2014-12-161-0/+1
| | | | | Signed-off-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* i965: Make validate_reg tables constantJuha-Pekka Heikkila2014-12-161-4/+4
| | | | | | | | Declare local tables constant. Signed-off-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Ben Widawsky <[email protected]>
* i965: remove commented out codeTimothy Arceri2014-12-161-2/+0
| | | | Acked-by: Matt Turner <[email protected]>
* st/mesa: use vertex id lowering according to pipe cap bit.Roland Scheidegger2014-12-162-2/+10
| | | | | Tested with llvmpipe by setting the cap bit temporarily, seems to work, though no driver requests it for now.
* i965/brw_reg: struct constructor now needs explicit negate and abs values.Andres Gomez2014-12-153-2/+28
| | | | | | | | | | | | | | | | | | | We were assuming, when constructing a new brw_reg struct, that the negate and abs register modifiers would not be present by default in the new register. Now, we force explicitly setting these values when constructing a new register. This will avoid problems like forgetting to properly set them when we are using a previous register to generate this new register, as it was happening in the dFdx and dFdy generation functions. Fixes piglit test shaders/glsl-deriv-varyings Cc: "10.4 10.3" <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82991 Reviewed-by: Matt Turner <[email protected]>
* util/hash_table: Rework the API to know about hashingJason Ekstrand2014-12-141-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the hash_table API required the user to do all of the hashing of keys as it passed them in. Since the hashing function is intrinsically tied to the comparison function, it makes sense for the hash table to know about it. Also, it makes for a somewhat clumsy API as the user is constantly calling hashing functions many of which have long names. This is especially bad when the standard call looks something like _mesa_hash_table_insert(ht, _mesa_pointer_hash(key), key, data); In the above case, there is no reason why the hash table shouldn't do the hashing for you. We leave the option for you to do your own hashing if it's more efficient, but it's no longer needed. Also, if you do do your own hashing, the hash table will assert that your hash matches what it expects out of the hashing function. This should make it harder to mess up your hashing. v2: change to call the old entrypoint "pre_hashed" rather than "with_hash", like cworth's equivalent change upstream (change by anholt, acked-in-general by Jason). Signed-off-by: Jason Ekstrand <[email protected]> Signed-off-by: Eric Anholt <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* i965/vec4: Drop writemasks on scratch reads.Kenneth Graunke2014-12-121-8/+0
| | | | | | | | | | | | | | This code is complete nonsense and has apparently existed since I first implemented register spilling in the VS two years ago. Scratch reads are SEND messages, which ignore the destination writemask. The comment about "data that may not have been written to scratch" is also confusing - we always spill whole 4x2 registers, so such data simply does not exist. We can safely ignore the writemask. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* mesa: remove long dead 3Dnow optimisationTimothy Arceri2014-12-133-860/+0
| | | | | | | | | This code has been turned off for the last decade. Considering 3Dnow is obsolete it seems the bug will never be fixed so just remove it. Reviewed-by: Ian Romanick <[email protected]>
* ir_to_mesa: remove unused 'target' variableBrian Paul2014-12-121-1/+0
| | | | Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove obsolete comment on _mesa_ClearColor()Brian Paul2014-12-121-4/+0
|
* mesa: whitespace fixes, 80-column wrapping in texobj.cBrian Paul2014-12-121-21/+33
|
* mesa: whitespace, line wrap fixes in clear.cBrian Paul2014-12-121-8/+11
|
* osmesa: Add osmesa.def to distribution.Matt Turner2014-12-121-1/+1
|
* x86-64: Remove calling_convention.txt.Matt Turner2014-12-121-50/+0
| | | | It just details the x86-64 calling convention. No need for this in Mesa.
* drivers/x11: Add headers to distribution.Matt Turner2014-12-121-0/+2
|
* drivers/windows: Add to distribution.Matt Turner2014-12-121-0/+1
|
* mesa: Add notes/readme files to distribution.Matt Turner2014-12-121-0/+3
|
* mesa: Add scons files to distribution.Matt Turner2014-12-125-2/+8
|
* haiku: Add files to distribution.Matt Turner2014-12-121-0/+1
|
* mesa: Add clean-local rule to remove .lib links.Matt Turner2014-12-121-0/+6
|
* xmlpool: Add $(MOS) and options.h to CLEANFILES.Matt Turner2014-12-121-0/+1
|
* dri: Add uninstall hooks to handle megadriver hardlinks.Matt Turner2014-12-121-0/+5
|
* swrast: Add headers to distribution.Matt Turner2014-12-121-1/+2
|
* r200: Add headers to distribution.Matt Turner2014-12-122-2/+31
|
* r200: Alphabetize source list.Matt Turner2014-12-121-10/+10
|
* radeon: Add headers to distribution.Matt Turner2014-12-122-2/+31
|
* radeon: Alphabetize source list.Matt Turner2014-12-121-9/+9
|
* nouveau: Add headers to distribution.Matt Turner2014-12-122-1/+30
|
* nouveau: Alphabetize source list.Matt Turner2014-12-121-10/+10
|
* i965: Add headers to distribution.Matt Turner2014-12-121-0/+47
|
* i965: Alphabetize source list.Matt Turner2014-12-121-35/+35
|