asahi: advertise ARB_shader_texture_image_samples
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
This commit is contained in:

committed by
Alyssa Rosenzweig

parent
bc6b2d087b
commit
5382f57e81
@@ -219,7 +219,7 @@ GL 4.5, GLSL 4.50 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v
|
||||
GL_ARB_derivative_control DONE (freedreno/a3xx+, nv50, softpipe, asahi, crocus/gen7+)
|
||||
GL_ARB_direct_state_access DONE (all drivers)
|
||||
GL_ARB_get_texture_sub_image DONE (all drivers)
|
||||
GL_ARB_shader_texture_image_samples DONE (freedreno/a3xx+, nv50, crocus/gen7+)
|
||||
GL_ARB_shader_texture_image_samples DONE (freedreno/a3xx+, nv50, crocus/gen7+, asahi)
|
||||
GL_ARB_texture_barrier DONE (freedreno, nv50, vc4, lima, crocus)
|
||||
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
|
||||
GL_KHR_robustness DONE (freedreno)
|
||||
|
@@ -11,3 +11,4 @@ GL_EXT_disjoint_timer_query on Asahi
|
||||
GL_ARB_base_instance on Asahi
|
||||
OpenGL 4.6 (up from 4.2) on d3d12
|
||||
VK_EXT_depth_clamp_zero_one on RADV
|
||||
GL_ARB_shader_texture_image_samples on Asahi
|
||||
|
@@ -9,6 +9,7 @@
|
||||
#include "agx_state.h"
|
||||
#include "nir.h"
|
||||
#include "nir_builder_opcodes.h"
|
||||
#include "nir_intrinsics.h"
|
||||
#include "nir_intrinsics_indices.h"
|
||||
#include "shader_enums.h"
|
||||
|
||||
@@ -82,6 +83,7 @@ lower(nir_builder *b, nir_instr *instr, void *data)
|
||||
CASE(image_load)
|
||||
CASE(image_store)
|
||||
CASE(image_size)
|
||||
CASE(image_samples)
|
||||
CASE(image_atomic)
|
||||
CASE(image_atomic_swap)
|
||||
default:
|
||||
@@ -95,11 +97,12 @@ lower(nir_builder *b, nir_instr *instr, void *data)
|
||||
/* Remap according to the driver layout */
|
||||
unsigned offset = BITSET_LAST_BIT(b->shader->info.textures_used);
|
||||
|
||||
/* For reads and image_size, we use the texture descriptor which is first.
|
||||
/* For reads and queries, we use the texture descriptor which is first.
|
||||
* Writes and atomics use the PBE descriptor.
|
||||
*/
|
||||
if (intr->intrinsic != nir_intrinsic_image_load &&
|
||||
intr->intrinsic != nir_intrinsic_image_size)
|
||||
intr->intrinsic != nir_intrinsic_image_size &&
|
||||
intr->intrinsic != nir_intrinsic_image_samples)
|
||||
offset++;
|
||||
|
||||
/* If we can determine statically that the image fits in texture state
|
||||
|
@@ -1735,6 +1735,7 @@ agx_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||
case PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET:
|
||||
return 7;
|
||||
case PIPE_CAP_DRAW_INDIRECT:
|
||||
case PIPE_CAP_TEXTURE_QUERY_SAMPLES:
|
||||
return true;
|
||||
|
||||
case PIPE_CAP_VIDEO_MEMORY: {
|
||||
|
Reference in New Issue
Block a user