[Mesa-dev] [PATCH v2 03/10] st/mesa: add PROGRAM_BUFFER, stop using gl_register_file

Brian Paul brianp at vmware.com
Tue Jan 19 06:34:14 PST 2016


I don't have any issue with simply adding PROGRAM_BUFFER to the enum 
type.  prog_src_register::File is a 4-bit field and we currently have 13 
enum values so we're safe there (not sure if that even matters).

I know I've used gdb to debug/trace something in st_glsl_to_tgsi.cpp at 
least twice last year and seeing enum values in gdb makes life a lot easier.

-Brian


On 01/19/2016 07:24 AM, Ilia Mirkin wrote:
> Because I got a ton of errors about how PROGRAM_BUFFER was out of
> bounds for the enum. I could add them to the enum, of course, but I
> think that enum was about ARB_vp/fp things?
>
>    -ilia
>
> On Tue, Jan 19, 2016 at 9:23 AM, Brian Paul <brianp at vmware.com> wrote:
>> Can you say why you're removing gl_register_file?  Enums are so much nicer
>> when debugging.
>>
>> -Brian
>>
>>
>> On 01/18/2016 07:30 PM, Ilia Mirkin wrote:
>>>
>>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>>> Reviewed-by: Marek Olšák <marek.olsak at amd.com>
>>> ---
>>>    src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 21 +++++++++++----------
>>>    1 file changed, 11 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> index d424e3b..055d187 100644
>>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>> @@ -53,6 +53,7 @@
>>>
>>>
>>>    #define PROGRAM_IMMEDIATE PROGRAM_FILE_MAX
>>> +#define PROGRAM_BUFFER    (PROGRAM_FILE_MAX + 1)
>>>    #define PROGRAM_ANY_CONST ((1 << PROGRAM_STATE_VAR) |    \
>>>                               (1 << PROGRAM_CONSTANT) |     \
>>>                               (1 << PROGRAM_UNIFORM))
>>> @@ -69,7 +70,7 @@ static int swizzle_for_size(int size);
>>>     */
>>>    class st_src_reg {
>>>    public:
>>> -   st_src_reg(gl_register_file file, int index, const glsl_type *type)
>>> +   st_src_reg(int file, int index, const glsl_type *type)
>>>       {
>>>          this->file = file;
>>>          this->index = index;
>>> @@ -88,7 +89,7 @@ public:
>>>          this->is_double_vertex_input = false;
>>>       }
>>>
>>> -   st_src_reg(gl_register_file file, int index, int type)
>>> +   st_src_reg(int file, int index, int type)
>>>       {
>>>          this->type = type;
>>>          this->file = file;
>>> @@ -104,7 +105,7 @@ public:
>>>          this->is_double_vertex_input = false;
>>>       }
>>>
>>> -   st_src_reg(gl_register_file file, int index, int type, int index2D)
>>> +   st_src_reg(int file, int index, int type, int index2D)
>>>       {
>>>          this->type = type;
>>>          this->file = file;
>>> @@ -138,7 +139,7 @@ public:
>>>
>>>       explicit st_src_reg(st_dst_reg reg);
>>>
>>> -   gl_register_file file; /**< PROGRAM_* from Mesa */
>>> +   int file; /**< PROGRAM_* from Mesa */
>>>       int index; /**< temporary index, VERT_ATTRIB_*, VARYING_SLOT_*, etc.
>>> */
>>>       int index2D;
>>>       GLuint swizzle; /**< SWIZZLE_XYZWONEZERO swizzles from Mesa. */
>>> @@ -203,7 +204,7 @@ public:
>>>
>>>       explicit st_dst_reg(st_src_reg reg);
>>>
>>> -   gl_register_file file; /**< PROGRAM_* from Mesa */
>>> +   int file; /**< PROGRAM_* from Mesa */
>>>       int index; /**< temporary index, VERT_ATTRIB_*, VARYING_SLOT_*, etc.
>>> */
>>>       int index2D;
>>>       int writemask; /**< Bitfield of WRITEMASK_[XYZW] */
>>> @@ -273,14 +274,14 @@ public:
>>>
>>>    class variable_storage : public exec_node {
>>>    public:
>>> -   variable_storage(ir_variable *var, gl_register_file file, int index,
>>> +   variable_storage(ir_variable *var, int file, int index,
>>>                        unsigned array_id = 0)
>>>          : file(file), index(index), var(var), array_id(array_id)
>>>       {
>>>          /* empty */
>>>       }
>>>
>>> -   gl_register_file file;
>>> +   int file;
>>>       int index;
>>>       ir_variable *var; /* variable that maps to this, if any */
>>>       unsigned array_id;
>>> @@ -401,7 +402,7 @@ public:
>>>
>>>       variable_storage *find_variable_storage(ir_variable *var);
>>>
>>> -   int add_constant(gl_register_file file, gl_constant_value values[8],
>>> +   int add_constant(int file, gl_constant_value values[8],
>>>                        int size, int datatype, GLuint *swizzle_out);
>>>
>>>       function_entry *get_function_signature(ir_function_signature *sig);
>>> @@ -990,7 +991,7 @@ glsl_to_tgsi_visitor::emit_arl(ir_instruction *ir,
>>>    }
>>>
>>>    int
>>> -glsl_to_tgsi_visitor::add_constant(gl_register_file file,
>>> +glsl_to_tgsi_visitor::add_constant(int file,
>>>                                       gl_constant_value values[8], int
>>> size, int datatype,
>>>                                       GLuint *swizzle_out)
>>>    {
>>> @@ -4550,7 +4551,7 @@ emit_immediate(struct st_translate *t,
>>>     * Map a glsl_to_tgsi dst register to a TGSI ureg_dst register.
>>>     */
>>>    static struct ureg_dst
>>> -dst_register(struct st_translate *t, gl_register_file file, unsigned
>>> index,
>>> +dst_register(struct st_translate *t, int file, unsigned index,
>>>                 unsigned array_id)
>>>    {
>>>       unsigned array;
>>>
>>



More information about the mesa-dev mailing list