History log of /external/mesa3d/src/intel/blorp/blorp.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f7f768d19506dc9e480531ce41d03dba9b4fc792 21-Oct-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Add support for vertex shaders

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
570a0e844b4be3bc5546b860e9968b55b2f3909d 21-Oct-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Remove NIR support for uniforms

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
1acebeb1910b5fb29195acf132bbb88ebeebfb8b 21-Oct-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Make the number of samples an explicit parameter

Previously, we always inferred it from params->dst which meant that
references to params->dst were scattered all throughout the state upload
code.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
058304f0819c96fd18eb17911022a410540aa295 01-Nov-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Use wm_prog_data instead of hand-rolling our own

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98012
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/intel/blorp/blorp.c
43dadb6edd5e3e3e10b1198184a9f75556edad49 21-Oct-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Rework our usage of ralloc when compiling shaders

Previously, we were creating the shader with a NULL ralloc context and then
trusting in blorp_compile_fs to clean it up. The only problem was that
blorp_compile_fs didn't clean up its context properly so we were leaking.
When I went to fix that, I realized that it couldn't because it has to
return the shader binary which is allocated off of that context and used by
the caller. The solution is to make blorp_compile_fs take a ralloc
context, allocate the nir_shaders directly off that context, and clean it
all up in whatever function creates the shader and calls blorp_compile_fs.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: "12.0, 13.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/intel/blorp/blorp.c
ab92480272bc34d943d28506cc36759e141b4371 21-Oct-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Rename compile_nir_shader to compile_fs

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
91d61fbf7cb61a44adcaae51ee08ad0dd6b2a03b 20-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> i965: rewrite brw_setup_vue_interpolation()

Here brw_setup_vue_interpolation() is rewritten not to use the InterpQualifier
array in gl_fragment_program which will allow us to remove it.

This change also makes the code which is only used by gen4/5 more self contained
as it now has its own gen5_fragment_program struct rather than storing the map
in brw_context. This means the interpolation map will only get processed once
and will get stored in the in memory cache rather than being processed everytime
the fs changes.

Also by calling this from the fs compile code rather than from the upload code
and using the interpolation assigned there we can get rid of the
BRW_NEW_INTERPOLATION_MAP flag.

It might not seem ideal to add a gen5_fragment_program struct however by the end
of this series we will have gotten rid of all the brw_{shader_stage}_program
structs and replaced them with a generic brw_program struct so there will only
be two program structs which is better than what we have now.

V2: Don't remove BRW_NEW_INTERPOLATION_MAP from dirty_bit_map until the following
patch to fix build error.

V3 - Suggestions by Jason:
- name struct gen4_fragment_program rather than gen5_fragment_program
- don't use enum with memset()
- create interp mode set helper and simplify logic to call it
- add assert when calling function to show prog will never be NULL for
gen4/5 i.e. no Vulkan

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/intel/blorp/blorp.c
e1af20f18a86f52a9640faf2d4ff8a71b0a4fa9b 13-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> nir/i965/anv/radv/gallium: make shader info a pointer

When restoring something from shader cache we won't have and don't
want to create a nir_shader this change detaches the two.

There are other advantages such as being able to reuse the
shader info populated by GLSL IR.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/intel/blorp/blorp.c
d80c0307eaa91a609f71651fb52122849d35b5ac 08-Oct-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Add a flag to make blorp not re-emit dept/stencil buffers

In Vulkan, we want to be able to use blorp to perform clears inside of a
render pass. If blorp stomps the depth/stencil buffers packets then we'll
have to re-emit them. This gets tricky when secondary command buffers get
involved. Instead, we'll simply guarantee that the depth and stencil
buffers we pass to blorp (if any) match those already set in the hardware.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
81be7be11960e3edb6968fd5c8d9475f234aae48 08-Oct-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Add an "enabled" bit to surface_info

This gives a slightly smarter way to check whether or not a particular
surface exists than looking at the address.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
ed65e6ef49e17e9cae93a8f98e2968346de2bc6e 14-Sep-2016 Jason Ekstrand <jason.ekstrand@intel.com> nir: Add a flag to lower_io to force "sample" interpolation

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/intel/blorp/blorp.c
54db5afd2c8bd3a32658b3fef698c6896f6a297b 03-Sep-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Work in terms of logical array layers

When Ivy Bridge introduced array multisampling, someone made the decision
to do lots of stuff throughout the driver in terms of physical array layers
rather than logical array layers. In ISL, we use logical array layers most
of the time and it really makes no sense to use physical array layers in
the blorp API. Every time someone passes physical array layers into blorp
for an array multisampled surface, they're always divisible by the number
of samples and we divide right away.

Eventually, I'd like to rework most of the GL driver internals to use
logical array layers but that's going to be a big project and will probably
happen as part of the ISL conversion. For now, we'll do the conversion in
brw_blorp and let blorp just use the logical layers.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
7ddb21708c800dfbe3cea2df6aaaf7aed852761b 28-Aug-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/isl: Add an isl_swizzle structure and use it for isl_view swizzles

This should be more compact than the enum isl_channel_select[4] that we
were using before. It's also very convenient because we already had such a
structure in the Vulkan driver we just needed to pull it over.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c
2519237c2495adb9564062eed6b9cd225b886dc0 12-Sep-2016 Jason Ekstrand <jason.ekstrand@intel.com> intel/blorp: Handle the 512 layers restriction on Sandy Bridge

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/intel/blorp/blorp.c
514afdce95e1c75a754412203425a8ac1282cd2d 26-Aug-2016 Topi Pohjolainen <topi.pohjolainen@intel.com> intel/blorp: Allow multiple layers

Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/intel/blorp/blorp.c
348509269ead23cb7f953c174d400e6e3d17d723 19-Aug-2016 Jason Ekstrand <jason.ekstrand@intel.com> i965: Move blorp into src/intel/blorp

At this point, blorp is completely driver agnostic and can be safely moved
into its own folder. Soon, we hope to start using it for doing blits in
the Vulkan driver.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
/external/mesa3d/src/intel/blorp/blorp.c