コード例 #1
0
ファイル: r300_emit.c プロジェクト: ashmew2/kolibriosSVN
void r300_emit_hyperz_state(struct r300_context *r300,
                            unsigned size, void *state)
{
    struct r300_hyperz_state *z = state;
    CS_LOCALS(r300);

    if (z->flush)
        WRITE_CS_TABLE(&z->cb_flush_begin, size);
    else
        WRITE_CS_TABLE(&z->cb_begin, size - 2);
}
コード例 #2
0
ファイル: r300_emit.c プロジェクト: ashmew2/kolibriosSVN
void r500_emit_fs(struct r300_context* r300, unsigned size, void *state)
{
    struct r300_fragment_shader *fs = r300_fs(r300);
    CS_LOCALS(r300);

    WRITE_CS_TABLE(fs->shader->cb_code, fs->shader->cb_code_size);
}
コード例 #3
0
ファイル: r300_emit.c プロジェクト: ashmew2/kolibriosSVN
void r300_emit_clip_state(struct r300_context* r300,
                          unsigned size, void* state)
{
    struct r300_clip_state* clip = (struct r300_clip_state*)state;
    CS_LOCALS(r300);

    WRITE_CS_TABLE(clip->cb, size);
}
コード例 #4
0
ファイル: r300_emit.c プロジェクト: ashmew2/kolibriosSVN
void r300_emit_blend_color_state(struct r300_context* r300,
                                 unsigned size, void* state)
{
    struct r300_blend_color_state* bc = (struct r300_blend_color_state*)state;
    CS_LOCALS(r300);

    WRITE_CS_TABLE(bc->cb, size);
}
コード例 #5
0
ファイル: r300_emit.c プロジェクト: VadimGirlin/mesa
void r300_emit_dsa_state(struct r300_context* r300, unsigned size, void* state)
{
    struct r300_dsa_state* dsa = (struct r300_dsa_state*)state;
    struct pipe_framebuffer_state* fb =
        (struct pipe_framebuffer_state*)r300->fb_state.state;
    CS_LOCALS(r300);

    if (fb->zsbuf) {
        if (fb->nr_cbufs && fb->cbufs[0]->format == PIPE_FORMAT_R16G16B16A16_FLOAT)
            WRITE_CS_TABLE(&dsa->cb_begin_fp16, size);
        else
            WRITE_CS_TABLE(&dsa->cb_begin, size);
    } else {
        if (fb->nr_cbufs && fb->cbufs[0]->format == PIPE_FORMAT_R16G16B16A16_FLOAT)
            WRITE_CS_TABLE(dsa->cb_fp16_zb_no_readwrite, size);
        else
            WRITE_CS_TABLE(dsa->cb_zb_no_readwrite, size);
    }
}
コード例 #6
0
ファイル: r300_emit.c プロジェクト: VadimGirlin/mesa
void r300_emit_blend_state(struct r300_context* r300,
                           unsigned size, void* state)
{
    struct r300_blend_state* blend = (struct r300_blend_state*)state;
    struct pipe_framebuffer_state* fb =
        (struct pipe_framebuffer_state*)r300->fb_state.state;
    CS_LOCALS(r300);

    if (fb->nr_cbufs) {
        if (fb->cbufs[0]->format == PIPE_FORMAT_R16G16B16A16_FLOAT) {
            WRITE_CS_TABLE(blend->cb_noclamp, size);
        } else {
            unsigned swz = r300_surface(fb->cbufs[0])->colormask_swizzle;
            WRITE_CS_TABLE(blend->cb_clamp[swz], size);
        }
    } else {
        WRITE_CS_TABLE(blend->cb_no_readwrite, size);
    }
}
コード例 #7
0
ファイル: r300_emit.c プロジェクト: ashmew2/kolibriosSVN
void r300_emit_blend_state(struct r300_context* r300,
                           unsigned size, void* state)
{
    struct r300_blend_state* blend = (struct r300_blend_state*)state;
    struct pipe_framebuffer_state* fb =
        (struct pipe_framebuffer_state*)r300->fb_state.state;
    struct pipe_surface *cb;
    CS_LOCALS(r300);

    cb = fb->nr_cbufs ? r300_get_nonnull_cb(fb, 0) : NULL;

    if (cb) {
        if (cb->format == PIPE_FORMAT_R16G16B16A16_FLOAT) {
            WRITE_CS_TABLE(blend->cb_noclamp, size);
        } else if (cb->format == PIPE_FORMAT_R16G16B16X16_FLOAT) {
            WRITE_CS_TABLE(blend->cb_noclamp_noalpha, size);
        } else {
            unsigned swz = r300_surface(cb)->colormask_swizzle;
            WRITE_CS_TABLE(blend->cb_clamp[swz], size);
        }
    } else {
        WRITE_CS_TABLE(blend->cb_no_readwrite, size);
    }
}
コード例 #8
0
ファイル: r300_emit.c プロジェクト: ashmew2/kolibriosSVN
void r300_emit_invariant_state(struct r300_context *r300,
                               unsigned size, void *state)
{
    CS_LOCALS(r300);
    WRITE_CS_TABLE(state, size);
}