16173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */ 26173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 36173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark/* 418c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark * Copyright (C) 2012-2013 Rob Clark <robclark@freedesktop.org> 56173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * 66173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * Permission is hereby granted, free of charge, to any person obtaining a 76173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * copy of this software and associated documentation files (the "Software"), 86173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * to deal in the Software without restriction, including without limitation 96173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * the rights to use, copy, modify, merge, publish, distribute, sublicense, 106173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * and/or sell copies of the Software, and to permit persons to whom the 116173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * Software is furnished to do so, subject to the following conditions: 126173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * 136173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * The above copyright notice and this permission notice (including the next 146173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * paragraph) shall be included in all copies or substantial portions of the 156173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * Software. 166173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * 176173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 186173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 196173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 206173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 216173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 226173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 236173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * SOFTWARE. 246173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * 256173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * Authors: 266173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark * Rob Clark <robclark@freedesktop.org> 276173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark */ 286173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 2918c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark#ifndef FD2_TEXTURE_H_ 3018c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark#define FD2_TEXTURE_H_ 316173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 326173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark#include "pipe/p_context.h" 336173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 3418c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark#include "freedreno_texture.h" 3518c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark#include "freedreno_resource.h" 366173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 3718c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark#include "fd2_context.h" 3818c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark#include "fd2_util.h" 396173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 4018c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clarkstruct fd2_sampler_stateobj { 4118c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark struct pipe_sampler_state base; 4218c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark uint32_t tex0, tex3, tex4, tex5; 4318c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark}; 446173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 45a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9Ilia Mirkinstatic inline struct fd2_sampler_stateobj * 4618c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clarkfd2_sampler_stateobj(struct pipe_sampler_state *samp) 476173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark{ 4818c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark return (struct fd2_sampler_stateobj *)samp; 496173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark} 506173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 5118c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clarkstruct fd2_pipe_sampler_view { 5218c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark struct pipe_sampler_view base; 5318c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark enum a2xx_sq_surfaceformat fmt; 5418c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark uint32_t tex0, tex2, tex3; 5518c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark}; 5618c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark 57a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9Ilia Mirkinstatic inline struct fd2_pipe_sampler_view * 5818c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clarkfd2_pipe_sampler_view(struct pipe_sampler_view *pview) 596173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark{ 6018c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark return (struct fd2_pipe_sampler_view *)pview; 616173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark} 626173cc19c45d92ef0b7bc6aa008aa89bb29abbdaRob Clark 6318c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clarkunsigned fd2_get_const_idx(struct fd_context *ctx, 6418c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark struct fd_texture_stateobj *tex, unsigned samp_id); 6518c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark 6618c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clarkvoid fd2_texture_init(struct pipe_context *pctx); 6718c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark 6818c317b21ddc2ec4538544f9dd69dc568dcf821fRob Clark#endif /* FD2_TEXTURE_H_ */ 69