tgsi: add a TXQS opcode to retrieve the number of texture samples
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
This commit is contained in:
@@ -141,7 +141,7 @@ static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] =
|
|||||||
{ 0, 0, 0, 1, 1, 0, NONE, "ENDLOOP", TGSI_OPCODE_ENDLOOP },
|
{ 0, 0, 0, 1, 1, 0, NONE, "ENDLOOP", TGSI_OPCODE_ENDLOOP },
|
||||||
{ 0, 0, 0, 0, 1, 0, NONE, "ENDSUB", TGSI_OPCODE_ENDSUB },
|
{ 0, 0, 0, 0, 1, 0, NONE, "ENDSUB", TGSI_OPCODE_ENDSUB },
|
||||||
{ 1, 1, 1, 0, 0, 0, OTHR, "TXQ_LZ", TGSI_OPCODE_TXQ_LZ },
|
{ 1, 1, 1, 0, 0, 0, OTHR, "TXQ_LZ", TGSI_OPCODE_TXQ_LZ },
|
||||||
{ 0, 0, 0, 0, 0, 0, NONE, "", 104 }, /* removed */
|
{ 1, 1, 1, 0, 0, 0, OTHR, "TXQS", TGSI_OPCODE_TXQS },
|
||||||
{ 0, 0, 0, 0, 0, 0, NONE, "", 105 }, /* removed */
|
{ 0, 0, 0, 0, 0, 0, NONE, "", 105 }, /* removed */
|
||||||
{ 0, 0, 0, 0, 0, 0, NONE, "", 106 }, /* removed */
|
{ 0, 0, 0, 0, 0, 0, NONE, "", 106 }, /* removed */
|
||||||
{ 0, 0, 0, 0, 0, 0, NONE, "NOP", TGSI_OPCODE_NOP },
|
{ 0, 0, 0, 0, 0, 0, NONE, "NOP", TGSI_OPCODE_NOP },
|
||||||
@@ -331,6 +331,7 @@ tgsi_opcode_infer_type( uint opcode )
|
|||||||
case TGSI_OPCODE_SAD: /* XXX some src args may be signed for SAD ? */
|
case TGSI_OPCODE_SAD: /* XXX some src args may be signed for SAD ? */
|
||||||
case TGSI_OPCODE_TXQ:
|
case TGSI_OPCODE_TXQ:
|
||||||
case TGSI_OPCODE_TXQ_LZ:
|
case TGSI_OPCODE_TXQ_LZ:
|
||||||
|
case TGSI_OPCODE_TXQS:
|
||||||
case TGSI_OPCODE_F2U:
|
case TGSI_OPCODE_F2U:
|
||||||
case TGSI_OPCODE_UDIV:
|
case TGSI_OPCODE_UDIV:
|
||||||
case TGSI_OPCODE_UMAD:
|
case TGSI_OPCODE_UMAD:
|
||||||
|
@@ -960,7 +960,6 @@ XXX doesn't look like most of the opcodes really belong here.
|
|||||||
For components which don't return a resource dimension, their value
|
For components which don't return a resource dimension, their value
|
||||||
is undefined.
|
is undefined.
|
||||||
|
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
lod = src0.x
|
lod = src0.x
|
||||||
@@ -973,6 +972,17 @@ XXX doesn't look like most of the opcodes really belong here.
|
|||||||
|
|
||||||
dst.w = texture\_levels(unit)
|
dst.w = texture\_levels(unit)
|
||||||
|
|
||||||
|
|
||||||
|
.. opcode:: TXQS - Texture Samples Query
|
||||||
|
|
||||||
|
This retrieves the number of samples in the texture, and stores it
|
||||||
|
into the x component. The other components are undefined.
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
dst.x = texture\_samples(unit)
|
||||||
|
|
||||||
|
|
||||||
.. opcode:: TG4 - Texture Gather
|
.. opcode:: TG4 - Texture Gather
|
||||||
|
|
||||||
As per ARB_texture_gather, gathers the four texels to be used in a bi-linear
|
As per ARB_texture_gather, gathers the four texels to be used in a bi-linear
|
||||||
|
@@ -402,6 +402,7 @@ struct tgsi_property_data {
|
|||||||
#define TGSI_OPCODE_ENDLOOP 101
|
#define TGSI_OPCODE_ENDLOOP 101
|
||||||
#define TGSI_OPCODE_ENDSUB 102
|
#define TGSI_OPCODE_ENDSUB 102
|
||||||
#define TGSI_OPCODE_TXQ_LZ 103 /* TXQ for mipmap level 0 */
|
#define TGSI_OPCODE_TXQ_LZ 103 /* TXQ for mipmap level 0 */
|
||||||
|
#define TGSI_OPCODE_TXQS 104
|
||||||
/* gap */
|
/* gap */
|
||||||
#define TGSI_OPCODE_NOP 107
|
#define TGSI_OPCODE_NOP 107
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user