pan/midgard: Add support for disassembling derivatives
They're just texture ops. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
a094928abc
commit
0714481894
|
@ -1074,6 +1074,8 @@ print_texture_op(unsigned op, bool gather)
|
|||
DEFINE_CASE(TEXTURE_OP_NORMAL, "texture");
|
||||
DEFINE_CASE(TEXTURE_OP_LOD, "textureLod");
|
||||
DEFINE_CASE(TEXTURE_OP_TEXEL_FETCH, "texelFetch");
|
||||
DEFINE_CASE(TEXTURE_OP_DFDX, "dFdx");
|
||||
DEFINE_CASE(TEXTURE_OP_DFDY, "dFdy");
|
||||
|
||||
default:
|
||||
printf("tex_%d", op);
|
||||
|
|
|
@ -541,6 +541,16 @@ midgard_tex_register_select;
|
|||
#define TEXTURE_OP_LOD 0x12 /* textureLod */
|
||||
#define TEXTURE_OP_TEXEL_FETCH 0x14 /* texelFetch */
|
||||
|
||||
/* Computes horizontal and vertical derivatives respectively. Use with a float
|
||||
* sampler and a "2D" texture. Leave texture/sampler IDs as zero; they ought
|
||||
* to be ignored. Only works for fp32 on 64-bit at a time, so derivatives of a
|
||||
* vec4 require 2 texture ops. For some reason, the blob computes both X and Y
|
||||
* derivatives at the same time and just throws out whichever is unused; it's
|
||||
* not known if this is a quirk of the hardware or just of the blob. */
|
||||
|
||||
#define TEXTURE_OP_DFDX 0x0D
|
||||
#define TEXTURE_OP_DFDY 0x1D
|
||||
|
||||
enum mali_sampler_type {
|
||||
MALI_SAMPLER_UNK = 0x0,
|
||||
MALI_SAMPLER_FLOAT = 0x1, /* sampler */
|
||||
|
|
Loading…
Reference in New Issue