aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* intel/blorp: Handle SINT/UINT clamping on blits.Kenneth Graunke2019-06-052-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes blorp_blit handle SINT<->UINT blit value clamping. After reading the source's integer data (which is expanded to 32-bit), we either IMAX with 0 (for SINT -> UINT, to clamp negative numbers) or UMIN with (1 << 31) - 1 (for UINT -> SINT, to clamp positive numbers outside of the representable range). Such blits are not allowed by the OpenGL or Vulkan APIs directly: The Vulkan 1.1 spec for vkCmdBlitImage says: "Integer formats can only be converted to other integer formats with the same signedness." The GL 4.5 spec for glBlitFramebuffer says: "An INVALID_OPERATION error is generated if format conversions are not supported, which occurs under any of the following conditions: [...] * The read buffer contains unsigned integer values and any draw buffer does not contain unsigned integer values. * The read buffer contains signed integer values and any draw buffer does not contain signed integer values." However, they are useful for other operations, such as texture upload and download, which typically are implemented via blorp_blit(). i965 has code to fall back in this case (which the next commit will delete), and Gallium expects blit() to handle this case for texture upload. Fixes the following tests on iris: - GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels - GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels_pbo - GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels_pixelstore Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* anv/pipeline: Move lowering of nir_var_mem_global laterCaio Marcelo de Oliveira Filho2019-06-051-3/+3
| | | | | | This let deref optimizations apply to globals before lowering them. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
* st/nir: Don't use GLSL IR's MOD_TO_FLOOR lowering when using NIR.Kenneth Graunke2019-06-051-1/+1
| | | | | | | | | | | | | | | Both GLSL IR and NIR perform the same mod -> floor lowering for 32-bit types. But nir_lower_double_ops is slightly more defensive against lowered drcp precision loss, and handles mod(x, x) = 0 directly. This works well...assuming nir_lower_double_ops actually gets an fmod op to lower in the first place. The previous patches enabled NIR-based lowering for the remaining drivers, so we can stop using the GLSL IR lowering when using NIR. Fixes KHR-GL45.gpu_shader_fp64.builtin.mod_dvec[234] on iris. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
* radeonsi: Enable NIR's lower_fmod option.Kenneth Graunke2019-06-051-0/+1
| | | | | | | | | | | | | Currently, st/mesa is always calling the GLSL IR lower_instructions() pass with MOD_TO_FLOOR set, so mod operations will be lowered before ever reaching NIR. This enables the same lowering at the NIR level, which will let me shut off the GLSL IR path for NIR-based drivers. The AMD NIR backend also has code to handle fmod, so we could potentially skip this and still be fine. I don't have an opinion on that. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
* vc4: Enable NIR's lower_fmod option.Kenneth Graunke2019-06-051-0/+1
| | | | | | | | | | Currently, st/mesa is always calling the GLSL IR lower_instructions() pass with MOD_TO_FLOOR set, so mod operations will be lowered before ever reaching NIR. This enables the same lowering at the NIR level, which will let me shut off the GLSL IR path for NIR-based drivers. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Acked-by: Eric Anholt <eric@anholt.net>
* v3d: Enable NIR's lower_fmod option.Kenneth Graunke2019-06-051-0/+1
| | | | | | | | | | Currently, st/mesa is always calling the GLSL IR lower_instructions() pass with MOD_TO_FLOOR set, so mod operations will be lowered before ever reaching NIR. This enables the same lowering at the NIR level, which will let me shut off the GLSL IR path for NIR-based drivers. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Acked-by: Eric Anholt <eric@anholt.net>
* nir: Combine lower_fmod16/32 back into a single lower_fmod.Kenneth Graunke2019-06-057-12/+10
| | | | | | | | | | | | | | We originally had a single lower_fmod option. In commit 2ab2d2e5, Sam split 32 and 64-bit lowering into separate flags, with the rationale that some drivers might want different options there. This left 16-bit unhandled, so Iago added a lower_fmod16 option in commit ca31df6f. Now that lower_fmod64 is gone (in favor of nir_lower_doubles and nir_lower_dmod), we re-combine lower_fmod16 and lower_fmod32 into a single lower_fmod flag again. I'm not aware of any hardware which need lowering for one bitsize and not the other. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
* nir: Drop lower_fmod64 option.Kenneth Graunke2019-06-053-3/+0
| | | | | | | | nir_lower_doubles offers a wide variety of fp64 lowering, including lowering fmod@64. The version there also better handles imprecisions due to lowered frcp@64. Let's consolidate on one version. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
* panfrost: Switch to nir_lower_doubles instead of lower_fmod64.Kenneth Graunke2019-06-051-1/+2
| | | | | | | | | I don't think panfrost actually does doubles yet, but it at least claims to support PIPE_CAP_DOUBLES, so at least pretend to switch to the new lowering. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* nouveau: Use nir_lower_doubles instead of lower_fmod64 on nvc0.Kenneth Graunke2019-06-051-2/+1
| | | | | | | | | | We currently have two duplicate mechanisms for lowering fmod@64. One is a nir_opt_algebraic rule keyed off of options->lower_fmod64, and the other is nir_lower_doubles, which offers a full gamut of fp64 lowering. The latter works slightly better in some corner cases, so I'm trying to eliminate lower_fmod64 and drop the redundancy. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
* gallium: Drop lower_fmod64 from drivers that don't support doubles.Kenneth Graunke2019-06-052-3/+0
| | | | | | | Neither freedreno nor nv50 expose PIPE_CAP_DOUBLES, so there's no fmod64 to be lowered. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
* docs: update calendar, and news item and link release notes for 19.0.6Dylan Baker2019-06-053-2/+9
|
* docs: Add SHA256 sums for 19.0.6Dylan Baker2019-06-051-1/+2
|
* docs: Add relnotes for 19.0.6Dylan Baker2019-06-051-0/+152
|
* docs: add day of month to all news-entriesErik Faye-Lund2019-06-051-2/+2
| | | | | | | | | This makes it easier to batch-convert them to other structured markup-formats. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: add MD5 checksums for 9.2.2 filesErik Faye-Lund2019-06-051-0/+3
| | | | | | | | | | | | These checksums were obtained by downloading the releases from ftp://ftp.freedesktop.org/pub/mesa/older-versions/9.x/9.2.2/ and running md5sum on them. Hopefully the server wasn't compromised since release. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use pre-block for showing commit-noteErik Faye-Lund2019-06-051-3/+3
| | | | | | | | | Having a single-item list for this seems odd. Let's just use a pre-block in stead. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: switch to definition list and code-tagsErik Faye-Lund2019-06-051-11/+21
| | | | | | | | | | | A definition list is a better semantic match for what this list is supposed to convey, so let's use that instead. And while we're at it, let's add some code-tags around filenames, as they stand a bit more out that way. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: combine headingsErik Faye-Lund2019-06-051-2/+1
| | | | | | | | | This is more in line with how we mark-up other definition lists, and avoids portability issues with other markup-formats. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: more code-tags in llvmpipe.htmlErik Faye-Lund2019-06-051-23/+32
| | | | | | | | This makes the article a bit easier to read. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use more code-tags in envvars.htmlErik Faye-Lund2019-06-051-66/+83
| | | | | | | | | This wraps code, identifiers, values and paths in code-tags, which makes them appear in a monospace-font for readability. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use code-tags for envvars and optionsErik Faye-Lund2019-06-051-142/+143
| | | | | | | | This makes it a bit easier to tell what's what. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use dl instead of ulErik Faye-Lund2019-06-051-257/+391
| | | | | | | | | | A HTML definition-list is more semantically strong than just some unordered list, and renders a bit cleaner by default. So let's use that instead. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: remove pointlessly repeated listErik Faye-Lund2019-06-051-2/+1
| | | | | | | | | The examples listed above are exactly the same ones are we're about to list, so let's just keep the list that defines what they do. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: remove stray whitespaceErik Faye-Lund2019-06-054-13/+13
| | | | | | | | | There's some stray whitespace in these files that doesn't do anything useful. Let's get rid of if. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use proper links instead of code-tagsErik Faye-Lund2019-06-051-6/+12
| | | | | | | | | | These links are a bit odd in that the URLs are simply placed in code-tags. This makes them harder to work with. Let's use proper links instead. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: update doxygen-linksErik Faye-Lund2019-06-052-2/+2
| | | | | | | | | One of these URLs are dead these days, and the other one forwards to the current one, doxygen.nl. Let's get these links up to date. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: remove some noisy spacing in pre-blocksErik Faye-Lund2019-06-051-9/+3
| | | | | | | | | These newlines caused the blocks to have trailing newlines in them, which renders a bit noisily. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: improve quoting slightlyErik Faye-Lund2019-06-051-1/+1
| | | | | | Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: do not use br-tag for non-significant breaksErik Faye-Lund2019-06-0513-94/+125
| | | | | | | | | | | | | | | According to the W3C, we shouldn't use the br-tag unless the line-break is part of the content: https://www.w3.org/TR/2011/WD-html5-author-20110809/the-br-element.html All of these instances are for non-content usage, and is as such technically out-of-spec. So let's either remove them, or split paragraphs, based on how related the content are. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: remove pointless line-breakErik Faye-Lund2019-06-051-1/+1
| | | | | | | | | Line-breaks at the end of a paragraph doesn't do anything useful, so let's just get rid of it. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: remove pointless trailing hard-breaksErik Faye-Lund2019-06-052-6/+0
| | | | | | | | | Line-break at the end of an article is quite pointless, and doesn't do much to increase the readability. Let's get rid of them. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: rewrite paragraph to be free-formErik Faye-Lund2019-06-051-3/+2
| | | | | | | | | | These half-way structured sections are needlessly problematic to translate cleanly to other markup-languages, so let's just make this into a free-form paragraph instead. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use h4 instead of free-standing paragraphs and br-tagsErik Faye-Lund2019-06-051-5/+3
| | | | | | | | | | This makes this document a bit more structured, which is generally considered a good thing for HTML. It will also translate a bit better into other markup-formats. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: slightly reword paragraph and tweak markupErik Faye-Lund2019-06-051-2/+2
| | | | | | | | This makes this paragraph a bit easier to digest. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: remove stray space in code-blockErik Faye-Lund2019-06-051-1/+1
| | | | | | Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: remove some pointless spacingErik Faye-Lund2019-06-051-15/+0
| | | | | | | | | | | The different headers and header-sizes already convey the hierarchical structure of this document, the unusual spacing arguably just looks a bit inconsistent with the rest of the site. Let's remove it; it looks fine without it, and will translate better to other markup languages. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: add more more code-tagsErik Faye-Lund2019-06-056-46/+50
| | | | | | | | | | It's easier to read function-names, file-names and other "machine"-related strings if they are formatted in a monospace font. So let's mark these up with code-tags. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use code instead of tt-tagErik Faye-Lund2019-06-058-65/+65
| | | | | | | | | | The tt-tag has been removed from HTML5, so let's normalize this to code-tags intead. This just makes things a bit more consistent, as we've mixed these left and right so far anyway. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use paragraph instead of double newlinesErik Faye-Lund2019-06-051-3/+3
| | | | | | | | | This is a bit more semantically clean in HTML, and makes us keep content and presentation a bit more separated. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* docs: use verbatim .plan quoteErik Faye-Lund2019-06-051-5/+5
| | | | | | | | | | | | | This quote is now verbatim, as archived here: https://github.com/ESWAT/john-carmack-plan-archive/blob/master/by_year/johnc_plan_1999.txt This makes it look a bit more consistent with the following news-entry, and makes things IMO a bit more clear. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
* panfrost/midgard: Verify SSA claims when pipeliningAlyssa Rosenzweig2019-06-053-0/+24
| | | | | | | | | | | | | | | | | The pipeline register creation algorithm is only valid for SSA indices; NIR registers and such cannot be pipelined without more complex analysis. However, there are the ocassional class of "liars" -- indices that claim to be SSA but are not. This occurs in the blend shader prologue, for example. Detect this and just bail quietly for now. Eventually we need to rewrite the blend shader prologue to occur in NIR anyway (which would mitigate the issue), but that's more involved and depends on a better understanding of pixel formats in blend shaders (for non-RGBA8888/UNORM cases). Fixes some blend shader regressions. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* panfrost/midgard: Don't assign var locations ourselvesAlyssa Rosenzweig2019-06-052-434/+0
| | | | | | | | | | This piece of code was cargo-culted from the ir3 standalone compiler and made sense when we were a standalone compiler ourselves. Unfortunately, for the online compiler, mesa/st *already handles this for us* and if we duplicate it here, we're duplicating it *incorrectly*. So just delete these lines and fix a heck of a lot of tests. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* panfrost: Reload framebuffer contents if there's no clearTomeu Vizoso2019-06-054-311/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | If by flush time the client hasn't submitted a clear, add jobs for reloading the framebuffer contents as the first draw in the frame. This is required by programs such as Weston which don't do clears and rely on the previous contents of the framebuffer being there. Reloading the whole framebuffer on every frame without regards to what is needed or what is going to be covered is very inefficient, but future work will introduce support for damage regions and partial updates so we know what needs to be actually reloaded. Fixes quite a few tests in dEQP-EGL.functional.buffer_age.*. [Alyssa: The context is that tilers do an implicit glClear() on every frame, whether you asked them to or not. If you want a clear, this is very efficient. But if you don't, you have to explicitly blit the backbuffer back into tile memory, accomplished by a dummy texturing draw. This patch generates that draw via u_blitter, although we could do a bit better ourselves by eliding the vertex job. This fixes "black rectangles in Weston/sway" as well as "video not displaying when UI visible in mpv"] Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* panfrost: Don't flip scanoutAlyssa Rosenzweig2019-06-059-82/+47
| | | | | | | | | | | | | | | | | | | | | | The mesa/st flips the viewport, so we respect that rather than trying to flip the framebuffer itself and ignoring the viewport and using a messy heuristic. However, this brings an underlying disagreement about the interpretation of winding order to light. The blob uses a different strategy than Mesa for handling viewport Y flipping, so the meanings of the winding order bit are flipped for it. To keep things clean on our end, we rename to explicitly use Gallium (rather than flipped OpenGL) conventions. Fixes upside-down Xwayland/egl windows. v2: Adjust lowering configuration to correctly flip gl_PointCoord.y and gl_FragCoord.y. v1 was R-b'd by Tomeu, but then retracted due to these regressions which are not fixed. Suggested-by: Rob Clark <robdclark@chromium.org> Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Sort-of-reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
* st/nine: Use tgsi_to_nir when preferred IR is NIR.Timur Kristóf2019-06-054-6/+135
| | | | | | | | | This patch allows nine to read the preferred IR from pipe caps and use NIR when that is preferred by the driver, by calling tgsi_to_nir. Also adds some debug options that allow overriding it. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Axel Davy <davyaxel0@gmail.com>
* intel/perf: improve dynamic loading config detectionLionel Landwerlin2019-06-051-15/+3
| | | | | | | | | | | | | | | We're currently trying to detect dynamic loading config support by trying to remove to test config (hard coded in the i915 driver) and checking we get ENOENT. This can fail if the test config was updated in Mesa but not yet in i915. A better way to do this is to pick an invalid ID and check for ENOENT. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
* intel/nir: Take nir_shader*s in brw_nir_link_shadersJason Ekstrand2019-06-054-41/+39
| | | | | | | Since NIR_PASS no longer swaps out the NIR pointer when NIR_TEST_* is enabled, we can just take a single pointer and not a pointer to pointer. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
* intel/nir: Stop returning the shader from helpersJason Ekstrand2019-06-0511-53/+47
| | | | | | | | Now that NIR_TEST_* doesn't swap the shader out from under us, it's sufficient to just modify the shader rather than having to return in case we're testing serialization or cloning. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
* nir: Don't replace the nir_shader when NIR_TEST_SERIALIZE=1Jason Ekstrand2019-06-052-10/+16
| | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108957 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Rob Clark <robdclark@chromium.org>