[v5 3/8] d3dx9: Implement preshader parsing.

Matteo Bruni matteo.mystral at gmail.com
Tue Mar 22 17:06:58 CDT 2016


2016-03-21 14:55 GMT+01:00 Paul Gofman <gofmanp at gmail.com>:
> Signed-off-by: Paul Gofman <gofmanp at gmail.com>

> +enum PRES_VALUE_TYPE

Please use lowercase for type names.

> +#define OFFSET2REG(table, offset) ((offset) / table_info[table].reg_component_count)

I think this could be a function instead, that's usually preferred to
macros when possible.
Not sure about the name, maybe get_reg_offset().

> +static HRESULT regstore_alloc_table(struct d3dx_regstore *rs, unsigned int table)
> +{
> +    unsigned int sz;

Nitpick, I would just spell out "size", it's pretty short anyway.

> +static void regstore_set_values(struct d3dx_regstore *rs, unsigned int table, void *data,
> +        unsigned int start_offset, unsigned int count)
> +{
> +    unsigned int reg_idx;
> +
> +    if (!count)
> +        return;
> +
> +    memcpy((BYTE *)rs->tables[table] + start_offset * table_info[table].component_size,
> +        data, count * table_info[table].component_size);
> +    for (reg_idx = OFFSET2REG(table, start_offset); reg_idx <= OFFSET2REG(table, start_offset + count - 1);
> +            ++reg_idx)
> +        rs->table_value_set[table][reg_idx / PRES_BITMASK_BLOCK_SIZE] |=
> +                1u << (reg_idx % PRES_BITMASK_BLOCK_SIZE);

This might be optimized, enabling each bit one by one doesn't seem
very efficient.

> +}
> +
> +static void dump_bytecode(void *data, unsigned int size)
> +{
> +    unsigned int *bytecode = (unsigned int *)data;
> +    unsigned int i, j, n;
> +
> +    size /= 4;

Nitpick, sizeof(*bytecode).



More information about the wine-devel mailing list